summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS.md1
-rw-r--r--ChangeLog3
-rw-r--r--app/Controller/Action.php94
-rw-r--r--app/Controller/ActionCreation.php121
-rw-r--r--app/Controller/ActionProject.php38
-rw-r--r--app/Locale/bs_BA/translations.php11
-rw-r--r--app/Locale/cs_CZ/translations.php11
-rw-r--r--app/Locale/da_DK/translations.php11
-rw-r--r--app/Locale/de_DE/translations.php11
-rw-r--r--app/Locale/el_GR/translations.php11
-rw-r--r--app/Locale/es_ES/translations.php21
-rw-r--r--app/Locale/fi_FI/translations.php11
-rw-r--r--app/Locale/fr_FR/translations.php11
-rw-r--r--app/Locale/hu_HU/translations.php11
-rw-r--r--app/Locale/id_ID/translations.php11
-rw-r--r--app/Locale/it_IT/translations.php11
-rw-r--r--app/Locale/ja_JP/translations.php11
-rw-r--r--app/Locale/my_MY/translations.php11
-rw-r--r--app/Locale/nb_NO/translations.php11
-rw-r--r--app/Locale/nl_NL/translations.php11
-rw-r--r--app/Locale/pl_PL/translations.php13
-rw-r--r--app/Locale/pt_BR/translations.php11
-rw-r--r--app/Locale/pt_PT/translations.php11
-rw-r--r--app/Locale/ru_RU/translations.php11
-rw-r--r--app/Locale/sr_Latn_RS/translations.php11
-rw-r--r--app/Locale/sv_SE/translations.php11
-rw-r--r--app/Locale/th_TH/translations.php954
-rw-r--r--app/Locale/tr_TR/translations.php11
-rw-r--r--app/Locale/zh_CN/translations.php11
-rw-r--r--app/ServiceProvider/AuthenticationProvider.php2
-rw-r--r--app/Template/action/index.php136
-rw-r--r--app/Template/action_creation/create.php16
-rw-r--r--app/Template/action_creation/event.php (renamed from app/Template/action/event.php)10
-rw-r--r--app/Template/action_creation/params.php (renamed from app/Template/action/params.php)15
-rw-r--r--app/Template/action_project/project.php20
-rw-r--r--assets/css/app.css2
-rw-r--r--assets/css/src/alert.css14
-rw-r--r--assets/css/src/form.css4
-rw-r--r--assets/js/app.js2
-rw-r--r--assets/js/src/App.js2
40 files changed, 965 insertions, 734 deletions
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index b31c2173..b289578a 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -67,6 +67,7 @@ Contributors:
- [Max Kamashev](https://github.com/ukko)
- [mfoucrier](https://github.com/mfoucrier)
- [Matthew Cillo](https://github.com/peripatetic-sojourner)
+- [Maxime Corteel](https://github.com/mcorteel)
- [Mgro](https://github.com/mgro)
- [Michael Lüpkes](https://github.com/mluepkes)
- [Mihailov Vasilievic Filho](https://github.com/mihailov-vf)
diff --git a/ChangeLog b/ChangeLog
index c549322b..cef2e1fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,9 @@ Version 1.0.27 (unreleased)
Improvements:
+* Improve automatic action creation
+* Move notifications to the bottom of the screen
+* Added the possibility to import automatic actions from another project
* Added Ajax loading icon for submit buttons
* Added support for HTTP header "X-Forwarded-Proto: https"
diff --git a/app/Controller/Action.php b/app/Controller/Action.php
index 6c324324..8881e8ec 100644
--- a/app/Controller/Action.php
+++ b/app/Controller/Action.php
@@ -3,7 +3,7 @@
namespace Kanboard\Controller;
/**
- * Automatic actions management
+ * Automatic Actions
*
* @package controller
* @author Frederic Guillot
@@ -38,98 +38,6 @@ class Action extends Base
}
/**
- * Choose the event according to the action (step 2)
- *
- * @access public
- */
- public function event()
- {
- $project = $this->getProject();
- $values = $this->request->getValues();
-
- if (empty($values['action_name']) || empty($values['project_id'])) {
- $this->response->redirect($this->helper->url->to('action', 'index', array('project_id' => $project['id'])));
- }
-
- $this->response->html($this->helper->layout->project('action/event', array(
- 'values' => $values,
- 'project' => $project,
- 'events' => $this->actionManager->getCompatibleEvents($values['action_name']),
- 'title' => t('Automatic actions')
- )));
- }
-
- /**
- * Define action parameters (step 3)
- *
- * @access public
- */
- public function params()
- {
- $project = $this->getProject();
- $values = $this->request->getValues();
-
- if (empty($values['action_name']) || empty($values['project_id']) || empty($values['event_name'])) {
- $this->response->redirect($this->helper->url->to('action', 'index', array('project_id' => $project['id'])));
- }
-
- $action = $this->actionManager->getAction($values['action_name']);
- $action_params = $action->getActionRequiredParameters();
-
- if (empty($action_params)) {
- $this->doCreation($project, $values + array('params' => array()));
- }
-
- $projects_list = $this->projectUserRole->getActiveProjectsByUser($this->userSession->getId());
- unset($projects_list[$project['id']]);
-
- $this->response->html($this->helper->layout->project('action/params', array(
- 'values' => $values,
- 'action_params' => $action_params,
- 'columns_list' => $this->column->getList($project['id']),
- 'users_list' => $this->projectUserRole->getAssignableUsersList($project['id']),
- 'projects_list' => $projects_list,
- 'colors_list' => $this->color->getList(),
- 'categories_list' => $this->category->getList($project['id']),
- 'links_list' => $this->link->getList(0, false),
- 'project' => $project,
- 'title' => t('Automatic actions')
- )));
- }
-
- /**
- * Create a new action (last step)
- *
- * @access public
- */
- public function create()
- {
- $this->doCreation($this->getProject(), $this->request->getValues());
- }
-
- /**
- * Save the action
- *
- * @access private
- * @param array $project Project properties
- * @param array $values Form values
- */
- private function doCreation(array $project, array $values)
- {
- list($valid, ) = $this->actionValidator->validateCreation($values);
-
- if ($valid) {
- if ($this->action->create($values) !== false) {
- $this->flash->success(t('Your automatic action have been created successfully.'));
- } else {
- $this->flash->failure(t('Unable to create your automatic action.'));
- }
- }
-
- $this->response->redirect($this->helper->url->to('action', 'index', array('project_id' => $project['id'])));
- }
-
- /**
* Confirmation dialog before removing an action
*
* @access public
diff --git a/app/Controller/ActionCreation.php b/app/Controller/ActionCreation.php
new file mode 100644
index 00000000..24a12d92
--- /dev/null
+++ b/app/Controller/ActionCreation.php
@@ -0,0 +1,121 @@
+<?php
+
+namespace Kanboard\Controller;
+
+/**
+ * Action Creation
+ *
+ * @package controller
+ * @author Frederic Guillot
+ */
+class ActionCreation extends Base
+{
+ /**
+ * Show the form (step 1)
+ *
+ * @access public
+ */
+ public function create()
+ {
+ $project = $this->getProject();
+
+ $this->response->html($this->template->render('action_creation/create', array(
+ 'project' => $project,
+ 'values' => array('project_id' => $project['id']),
+ 'available_actions' => $this->actionManager->getAvailableActions(),
+ )));
+ }
+
+ /**
+ * Choose the event according to the action (step 2)
+ *
+ * @access public
+ */
+ public function event()
+ {
+ $project = $this->getProject();
+ $values = $this->request->getValues();
+
+ if (empty($values['action_name']) || empty($values['project_id'])) {
+ return $this->create();
+ }
+
+ $this->response->html($this->template->render('action_creation/event', array(
+ 'values' => $values,
+ 'project' => $project,
+ 'available_actions' => $this->actionManager->getAvailableActions(),
+ 'events' => $this->actionManager->getCompatibleEvents($values['action_name']),
+ )));
+ }
+
+ /**
+ * Define action parameters (step 3)
+ *
+ * @access public
+ */
+ public function params()
+ {
+ $project = $this->getProject();
+ $values = $this->request->getValues();
+
+ if (empty($values['action_name']) || empty($values['project_id']) || empty($values['event_name'])) {
+ return $this->create();
+ }
+
+ $action = $this->actionManager->getAction($values['action_name']);
+ $action_params = $action->getActionRequiredParameters();
+
+ if (empty($action_params)) {
+ $this->doCreation($project, $values + array('params' => array()));
+ }
+
+ $projects_list = $this->projectUserRole->getActiveProjectsByUser($this->userSession->getId());
+ unset($projects_list[$project['id']]);
+
+ $this->response->html($this->template->render('action_creation/params', array(
+ 'values' => $values,
+ 'action_params' => $action_params,
+ 'columns_list' => $this->column->getList($project['id']),
+ 'users_list' => $this->projectUserRole->getAssignableUsersList($project['id']),
+ 'projects_list' => $projects_list,
+ 'colors_list' => $this->color->getList(),
+ 'categories_list' => $this->category->getList($project['id']),
+ 'links_list' => $this->link->getList(0, false),
+ 'project' => $project,
+ 'available_actions' => $this->actionManager->getAvailableActions(),
+ 'events' => $this->actionManager->getCompatibleEvents($values['action_name']),
+ )));
+ }
+
+ /**
+ * Save the action (last step)
+ *
+ * @access public
+ */
+ public function save()
+ {
+ $this->doCreation($this->getProject(), $this->request->getValues());
+ }
+
+ /**
+ * Common method to save the action
+ *
+ * @access private
+ * @param array $project Project properties
+ * @param array $values Form values
+ */
+ private function doCreation(array $project, array $values)
+ {
+ list($valid, ) = $this->actionValidator->validateCreation($values);
+
+ if ($valid) {
+ if ($this->action->create($values) !== false) {
+ $this->flash->success(t('Your automatic action have been created successfully.'));
+ } else {
+ $this->flash->failure(t('Unable to create your automatic action.'));
+ }
+ }
+
+ $this->response->redirect($this->helper->url->to('action', 'index', array('project_id' => $project['id'])));
+ }
+}
diff --git a/app/Controller/ActionProject.php b/app/Controller/ActionProject.php
new file mode 100644
index 00000000..e5063f73
--- /dev/null
+++ b/app/Controller/ActionProject.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Kanboard\Controller;
+
+/**
+ * Duplicate automatic action from another project
+ *
+ * @package controller
+ * @author Frederic Guillot
+ */
+class ActionProject extends Base
+{
+ public function project()
+ {
+ $project = $this->getProject();
+ $projects = $this->projectUserRole->getProjectsByUser($this->userSession->getId());
+ unset($projects[$project['id']]);
+
+ $this->response->html($this->template->render('action_project/project', array(
+ 'project' => $project,
+ 'projects_list' => $projects,
+ )));
+ }
+
+ public function save()
+ {
+ $project = $this->getProject();
+ $src_project_id = $this->request->getValue('src_project_id');
+
+ if ($this->action->duplicate($src_project_id, $project['id'])) {
+ $this->flash->success(t('Actions duplicated successfully.'));
+ } else {
+ $this->flash->failure(t('Unable to duplicate actions.'));
+ }
+
+ $this->response->redirect($this->helper->url->to('action', 'index', array('project_id' => $project['id'])));
+ }
+}
diff --git a/app/Locale/bs_BA/translations.php b/app/Locale/bs_BA/translations.php
index 3abb095f..aaeabbbb 100644
--- a/app/Locale/bs_BA/translations.php
+++ b/app/Locale/bs_BA/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Uredi',
'remove' => 'ukloni',
'Remove' => 'Ukloni',
- 'Update' => 'Ažuriraj',
'Yes' => 'Da',
'No' => 'Ne',
'cancel' => 'odustani',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Akcije',
'Inactive' => 'Neaktivan',
'Active' => 'Aktivan',
- 'Add this column' => 'Dodaj kolonu',
'%d tasks on the board' => '%d zadataka na tabli',
'%d tasks in total' => '%d zadataka ukupno',
'Unable to update this board.' => 'Nemogu da ažuriram ovu tablu.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Nije moguće obrisati akciju',
'Action removed successfully.' => 'Akcija obrisana',
'Automatic actions for the project "%s"' => 'Akcije za automatizaciju projekta "%s"',
- 'Defined actions' => 'Definisane akcje',
'Add an action' => 'dodaj akcju',
'Event name' => 'Naziv događaja',
'Action name' => 'Naziv akcije',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Na izabrani događaj izvrši odgovarajuću akciju',
'Next step' => 'Slijedeći korak',
'Define action parameters' => 'Definiši parametre akcije',
- 'Save this action' => 'Snimi akciju',
'Do you really want to remove this action: "%s"?' => 'Da li da obrišem akciju "%s"?',
'Remove an automatic action' => 'Obriši automatsku akciju',
'Assign the task to a specific user' => 'Dodijeli zadatak određenom korisniku',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/cs_CZ/translations.php b/app/Locale/cs_CZ/translations.php
index f03d70c5..a3345a99 100644
--- a/app/Locale/cs_CZ/translations.php
+++ b/app/Locale/cs_CZ/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Editovat',
'remove' => 'odstranit',
'Remove' => 'Odstranit',
- 'Update' => 'Akualizovat',
'Yes' => 'Ano',
'No' => 'Ne',
'cancel' => 'Zrušit',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Akce',
'Inactive' => 'Neaktivní',
'Active' => 'Aktivní',
- 'Add this column' => 'Přidat sloupec',
'%d tasks on the board' => '%d úkolů na nástěnce',
'%d tasks in total' => '%d úkolů celkem',
'Unable to update this board.' => 'Nástěnku není možné aktualizovat',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Tuto akci nelze odstranit.',
'Action removed successfully.' => 'Akce byla úspěšně odstraněna.',
'Automatic actions for the project "%s"' => 'Automaticky vykonávané akce pro projekt "%s"',
- 'Defined actions' => 'Definované akce',
'Add an action' => 'Přidat akci',
'Event name' => 'Název události',
'Action name' => 'Název akce',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Kdykoliv se vybraná událost objeví, vykonat odpovídající akci.',
'Next step' => 'Další krok',
'Define action parameters' => 'Definovat parametry akce',
- 'Save this action' => 'Uložit akci',
'Do you really want to remove this action: "%s"?' => 'Skutečně chcete odebrat tuto akci: "%s"?',
'Remove an automatic action' => 'Odebrat automaticky prováděnou akci',
'Assign the task to a specific user' => 'Přiřadit tento úkol konkrétnímu uživateli',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/da_DK/translations.php b/app/Locale/da_DK/translations.php
index 03180b5a..e532f075 100644
--- a/app/Locale/da_DK/translations.php
+++ b/app/Locale/da_DK/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Rediger',
'remove' => 'fjern',
'Remove' => 'Fjern',
- 'Update' => 'Opdater',
'Yes' => 'Ja',
'No' => 'Nej',
'cancel' => 'annuller',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Handlinger',
'Inactive' => 'Inaktiv',
'Active' => 'Aktiv',
- 'Add this column' => 'Tilføj denne kolonne',
'%d tasks on the board' => '%d Opgaver på boardet',
'%d tasks in total' => '%d Opgaver i alt',
'Unable to update this board.' => 'Ikke muligt at opdatere dette board',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Handlingen kunne ikke fjernes.',
'Action removed successfully.' => 'Handlingen er fjernet.',
'Automatic actions for the project "%s"' => 'Automatiske handlinger for projektet "%s"',
- 'Defined actions' => 'Defineret handlinger',
'Add an action' => 'Tilføj en handling',
'Event name' => 'Begivenhed',
'Action name' => 'Handling',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Når den valgte begivenhed opstår, udfør den tilsvarende handling.',
'Next step' => 'Næste',
'Define action parameters' => 'Definer Handlingsparametre',
- 'Save this action' => 'Gem denne handling',
'Do you really want to remove this action: "%s"?' => 'Vil du virkelig slette denne handling: "%s"?',
'Remove an automatic action' => 'Fjern en automatisk handling',
'Assign the task to a specific user' => 'Tildel opgaven til en bestem bruger',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/de_DE/translations.php b/app/Locale/de_DE/translations.php
index 0a6aada5..a0f5b7cb 100644
--- a/app/Locale/de_DE/translations.php
+++ b/app/Locale/de_DE/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Bearbeiten',
'remove' => 'Entfernen',
'Remove' => 'Entfernen',
- 'Update' => 'Aktualisieren',
'Yes' => 'Ja',
'No' => 'Nein',
'cancel' => 'Abbrechen',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Aktionen',
'Inactive' => 'Inaktiv',
'Active' => 'Aktiv',
- 'Add this column' => 'Diese Spalte hinzufügen',
'%d tasks on the board' => '%d Aufgaben auf dieser Pinnwand',
'%d tasks in total' => '%d Aufgaben insgesamt',
'Unable to update this board.' => 'Ändern dieser Pinnwand nicht möglich.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Löschen der Aktion nicht möglich.',
'Action removed successfully.' => 'Aktion erfolgreich gelöscht.',
'Automatic actions for the project "%s"' => 'Automatische Aktionen für das Projekt "%s"',
- 'Defined actions' => 'Definierte Aktionen',
'Add an action' => 'Aktion hinzufügen',
'Event name' => 'Ereignisname',
'Action name' => 'Aktionsname',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Wenn das gewählte Ereignis eintritt, führe die zugehörige Aktion aus.',
'Next step' => 'Weiter',
'Define action parameters' => 'Aktionsparameter definieren',
- 'Save this action' => 'Aktion speichern',
'Do you really want to remove this action: "%s"?' => 'Soll diese Aktion wirklich gelöscht werden: "%s"?',
'Remove an automatic action' => 'Löschen einer automatischen Aktion',
'Assign the task to a specific user' => 'Aufgabe einem Benutzer zuordnen',
@@ -1148,4 +1144,11 @@ return array(
'This value must be greater than %d' => 'Dieser Wert muss größer als %d sein',
'Another swimlane with the same name exists in the project' => 'Es gibt bereits eine Swimlane mit diesem Namen im Projekt',
'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => 'Beispiel: http://example.kanboard.net (wird zum Erstellen absoluter URLs genutzt)',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/el_GR/translations.php b/app/Locale/el_GR/translations.php
index e59949cf..49b44e02 100644
--- a/app/Locale/el_GR/translations.php
+++ b/app/Locale/el_GR/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Διόρθωση',
'remove' => 'αφαιρετής',
'Remove' => 'Αφαίρεση',
- 'Update' => 'Ενημέρωση',
'Yes' => 'Ναι',
'No' => 'Όχι',
'cancel' => 'ακύρωση',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Ενέργειες',
'Inactive' => 'Ανενεργός',
'Active' => 'Ενεργός',
- 'Add this column' => 'Προσθήκη αυτής της στήλης',
'%d tasks on the board' => '%d εργασίες στον κεντρικό πίνακα έργου',
'%d tasks in total' => '%d εργασιών στο σύνολο',
'Unable to update this board.' => 'Αδύνατη η ενημέρωση αυτού του πίνακα',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Δεν είναι δυνατή η αφαίρεση αυτής της ενέργειας',
'Action removed successfully.' => 'Η ενέργεια αφαιρέθηκε με επιτυχία.',
'Automatic actions for the project "%s"' => 'Αυτόματες ενέργειες για το έργο « %s »',
- 'Defined actions' => 'Ορισμένες ενέργειες',
'Add an action' => 'Προσθήκη ενέργειας',
'Event name' => 'Ονομασία συμβάντος',
'Action name' => 'Ονομασία ενέργειας',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Όταν εμφανίζεται το επιλεγμένο συμβάν εκτελέστε την αντίστοιχη ενέργεια.',
'Next step' => 'Επόμενο βήμα',
'Define action parameters' => 'Ορισμός παραμέτρων ενέργειας',
- 'Save this action' => 'Αποθήκευση ενέργειας',
'Do you really want to remove this action: "%s"?' => 'Αφαίρεση της ενέργειας: « %s » ?',
'Remove an automatic action' => 'Αφαίρεση της αυτόματης ενέργειας',
'Assign the task to a specific user' => 'Ανάθεση της εργασίας σε συγκεκριμένο χρήστη',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/es_ES/translations.php b/app/Locale/es_ES/translations.php
index 383a43de..54852736 100644
--- a/app/Locale/es_ES/translations.php
+++ b/app/Locale/es_ES/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Modificar',
'remove' => 'suprimir',
'Remove' => 'Suprimir',
- 'Update' => 'Actualizar',
'Yes' => 'Sí',
'No' => 'No',
'cancel' => 'cancelar',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Acciones',
'Inactive' => 'Inactivo',
'Active' => 'Activo',
- 'Add this column' => 'Añadir esta columna',
'%d tasks on the board' => '%d tareas en el tablero',
'%d tasks in total' => '%d tareas en total',
'Unable to update this board.' => 'No se puede actualizar este tablero.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'No se puede suprimir esta accción.',
'Action removed successfully.' => 'La acción ha sido borrada correctamente.',
'Automatic actions for the project "%s"' => 'Acciones automatizadas para este proyecto « %s »',
- 'Defined actions' => 'Acciones definidas',
'Add an action' => 'Agregar una acción',
'Event name' => 'Nombre del evento',
'Action name' => 'Nombre de la acción',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Cuando tiene lugar el evento seleccionado, ejecutar la acción correspondiente.',
'Next step' => 'Etapa siguiente',
'Define action parameters' => 'Definición de los parametros de la acción',
- 'Save this action' => 'Guardar esta acción',
'Do you really want to remove this action: "%s"?' => '¿Realmente desea suprimir esta acción « %s » ?',
'Remove an automatic action' => 'Suprimir una acción automatizada',
'Assign the task to a specific user' => 'Asignar una tarea a un usuario especifico',
@@ -1086,11 +1082,11 @@ return array(
'closed' => 'cerrado',
'Priority:' => 'Prioridad',
'Reference:' => 'Referencia',
- // 'Complexity:' => 'Complejidad',
- // 'Swimlane:' => 'Swimlane',
- // 'Column:' => 'Columna',
- // 'Position:' => 'Posición',
- // 'Creator:' => 'Creador',
+ // 'Complexity:' => '',
+ // 'Swimlane:' => '',
+ // 'Column:' => '',
+ // 'Position:' => '',
+ // 'Creator:' => '',
// 'Time estimated:' => '',
'%s hours' => '%s horas',
// 'Time spent:' => '',
@@ -1148,4 +1144,11 @@ return array(
'This value must be greater than %d' => 'Este valor debe ser mayor a %d',
'Another swimlane with the same name exists in the project' => 'Ya existe otro swimlane con el mismo nombre en el proyecto',
'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => 'Ejemplo: http://ejemplo.kanboard.net/ (Usado para generar URLs absolutas)',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/fi_FI/translations.php b/app/Locale/fi_FI/translations.php
index 169fa665..1a04b605 100644
--- a/app/Locale/fi_FI/translations.php
+++ b/app/Locale/fi_FI/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Muokkaa',
'remove' => 'poista',
'Remove' => 'Poista',
- 'Update' => 'Päivitä',
'Yes' => 'Kyllä',
'No' => 'Ei',
'cancel' => 'peruuta',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Toiminnot',
'Inactive' => 'Ei aktiivinen',
'Active' => 'Aktiivinen',
- 'Add this column' => 'Lisää tämä sarake',
'%d tasks on the board' => '%d tehtävää taululla',
'%d tasks in total' => '%d tehtävää yhteensä',
'Unable to update this board.' => 'Taulun muuttaminen ei onnistunut.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Toiminnon poistaminen epäonnistui.',
'Action removed successfully.' => 'Toiminto poistettiin onnistuneesti.',
'Automatic actions for the project "%s"' => 'Automaattiset toiminnot projektille "%s"',
- 'Defined actions' => 'Määritellyt toiminnot',
// 'Add an action' => '',
'Event name' => 'Tapahtuman nimi',
'Action name' => 'Toiminnon nimi',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Kun valittu tapahtuma tapahtuu, suorita vastaava toiminto.',
'Next step' => 'Seuraava vaihe',
'Define action parameters' => 'Määrittele toiminnon parametrit',
- 'Save this action' => 'Tallenna toiminto',
'Do you really want to remove this action: "%s"?' => 'Oletko varma että haluat poistaa toiminnon "%s"?',
'Remove an automatic action' => 'Poista automaattintn toiminto',
'Assign the task to a specific user' => 'Osoita tehtävä käyttäjälle',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/fr_FR/translations.php b/app/Locale/fr_FR/translations.php
index 1982e9b0..18ce9bd7 100644
--- a/app/Locale/fr_FR/translations.php
+++ b/app/Locale/fr_FR/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Modifier',
'remove' => 'supprimer',
'Remove' => 'Supprimer',
- 'Update' => 'Mettre à jour',
'Yes' => 'Oui',
'No' => 'Non',
'cancel' => 'annuler',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Actions',
'Inactive' => 'Inactif',
'Active' => 'Actif',
- 'Add this column' => 'Ajouter cette colonne',
'%d tasks on the board' => '%d tâches sur le tableau',
'%d tasks in total' => '%d tâches au total',
'Unable to update this board.' => 'Impossible de mettre à jour ce tableau.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Impossible de supprimer cette action',
'Action removed successfully.' => 'Action supprimée avec succès.',
'Automatic actions for the project "%s"' => 'Actions automatisées pour le projet « %s »',
- 'Defined actions' => 'Actions définies',
'Add an action' => 'Ajouter une action',
'Event name' => 'Nom de l\'événement',
'Action name' => 'Nom de l\'action',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Lorsque l\'événement sélectionné se déclenche, exécuter l\'action correspondante.',
'Next step' => 'Étape suivante',
'Define action parameters' => 'Définition des paramètres de l\'action',
- 'Save this action' => 'Sauvegarder cette action',
'Do you really want to remove this action: "%s"?' => 'Voulez-vous vraiment supprimer cette action « %s » ?',
'Remove an automatic action' => 'Supprimer une action automatisée',
'Assign the task to a specific user' => 'Assigner la tâche à un utilisateur spécifique',
@@ -1151,4 +1147,11 @@ return array(
'This value must be greater than %d' => 'Cette valeur doit être plus grande que %d',
'Another swimlane with the same name exists in the project' => 'Une autre swimlane existe avec le même nom dans le projet',
'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => 'Exemple : http://exemple.kanboard.net/ (utilisé pour générer les URLs absolues)',
+ 'Actions duplicated successfully.' => 'Actions dupliquées avec succès.',
+ 'Unable to duplicate actions.' => 'Impossible de dupliquer les actions.',
+ 'Add a new action' => 'Ajouter une nouvelle action',
+ 'Import from another project' => 'Importer depuis un autre projet',
+ 'There is no action at the moment.' => 'Il n\'y a aucune action pour le moment.',
+ 'Import actions from another project' => 'Importer les actions depuis un autre projet',
+ 'There is no available project.' => 'Il n\'y a pas de projet disponible.',
);
diff --git a/app/Locale/hu_HU/translations.php b/app/Locale/hu_HU/translations.php
index 71d068e0..1bc0917d 100644
--- a/app/Locale/hu_HU/translations.php
+++ b/app/Locale/hu_HU/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Szerkesztés',
'remove' => 'törlés',
'Remove' => 'Törlés',
- 'Update' => 'Frissítés',
'Yes' => 'Igen',
'No' => 'Nem',
'cancel' => 'Mégsem',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Műveletek',
'Inactive' => 'Inaktív',
'Active' => 'Aktív',
- 'Add this column' => 'Oszlop hozzáadása',
'%d tasks on the board' => '%d feladat a táblán',
'%d tasks in total' => 'Összesen %d feladat',
'Unable to update this board.' => 'Nem lehet frissíteni a táblát.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Intézkedés törlése nem lehetséges.',
'Action removed successfully.' => 'Intézkedés sikeresen törölve.',
'Automatic actions for the project "%s"' => 'Automatikus intézkedések a projektben: "%s"',
- 'Defined actions' => 'Intézkedések',
'Add an action' => 'Intézkedés létrehozása',
'Event name' => 'Esemény neve',
'Action name' => 'Intézkedés neve',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Ha a kiválasztott esemény bekövetkezik, hajtsa végre a megfelelő intézkedéseket.',
'Next step' => 'Következő lépés',
'Define action parameters' => 'Határozza meg az intézkedés paramétereit',
- 'Save this action' => 'Intézkedés mentése',
'Do you really want to remove this action: "%s"?' => 'Valóban törölni akarja ezt az intézkedést: "%s"?',
'Remove an automatic action' => 'Automatikus intézkedés törlése',
'Assign the task to a specific user' => 'Feladat kiosztása megadott felhasználónak',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/id_ID/translations.php b/app/Locale/id_ID/translations.php
index 936023dc..ecc04bba 100644
--- a/app/Locale/id_ID/translations.php
+++ b/app/Locale/id_ID/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Modifikasi',
'remove' => 'hapus',
'Remove' => 'Hapus',
- 'Update' => 'Perbaharui',
'Yes' => 'Ya',
'No' => 'Tidak',
'cancel' => 'batal',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Tindakan',
'Inactive' => 'Non Aktif',
'Active' => 'Aktif',
- 'Add this column' => 'Tambahkan kolom ini',
'%d tasks on the board' => '%d tugas di papan',
'%d tasks in total' => '%d tugas di total',
'Unable to update this board.' => 'Tidak dapat memperbaharui papan ini',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Tidak dapat menghapus tindakan ini',
'Action removed successfully.' => 'Tindakan berhasil dihapus.',
'Automatic actions for the project "%s"' => 'Tindakan otomatis untuk proyek ini « %s »',
- 'Defined actions' => 'Tindakan didefinisikan',
'Add an action' => 'Tambah tindakan',
'Event name' => 'Nama acara',
'Action name' => 'Nama tindakan',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Ketika acara yang dipilih terjadi, melakukan tindakan yang sesuai.',
'Next step' => 'Langkah selanjutnya',
'Define action parameters' => 'Definisi parameter tindakan',
- 'Save this action' => 'Simpan tindakan ini',
'Do you really want to remove this action: "%s"?' => 'Apakah anda yakin akan menghapus tindakan ini « %s » ?',
'Remove an automatic action' => 'Hapus tindakan otomatis',
'Assign the task to a specific user' => 'Menetapkan tugas untuk pengguna tertentu',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/it_IT/translations.php b/app/Locale/it_IT/translations.php
index ab09fcea..e3584944 100644
--- a/app/Locale/it_IT/translations.php
+++ b/app/Locale/it_IT/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Modifica',
'remove' => 'cancella',
'Remove' => 'Cancella',
- 'Update' => 'Aggiorna',
'Yes' => 'Si',
'No' => 'No',
'cancel' => 'annulla',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Azioni',
'Inactive' => 'Inattivo',
'Active' => 'Attivo',
- 'Add this column' => 'Aggiungi questa colonna',
'%d tasks on the board' => '%d task sulla bacheca',
'%d tasks in total' => '%d task in totale',
'Unable to update this board.' => 'Impossibile aggiornare questa bacheca.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Impossibile cancellare questa azione.',
'Action removed successfully.' => 'Azione cancellata con successo.',
'Automatic actions for the project "%s"' => 'Azioni automatiche per il progetto "%s"',
- 'Defined actions' => 'Azioni definite',
'Add an action' => 'Aggiungi un\'azione',
'Event name' => 'Nome dell\'evento',
'Action name' => 'Nome dell\'azione',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Quando si verifica l\'evento selezionato, eseguire l\'azione corrispondente.',
'Next step' => 'Passo successivo',
'Define action parameters' => 'Definire i parametri dell\'azione',
- 'Save this action' => 'Salva questa azione',
'Do you really want to remove this action: "%s"?' => 'Vuoi davvero cancellare la seguente azione: "%s"?',
'Remove an automatic action' => 'Cancella un\'azione automatica',
'Assign the task to a specific user' => 'Assegna il task ad un utente specifico',
@@ -1148,4 +1144,11 @@ return array(
'This value must be greater than %d' => 'Questo valore deve essere magiore di %d',
'Another swimlane with the same name exists in the project' => 'Un\'altra corsia con lo stesso nome è già esistente in questo progetto',
'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => 'Esempio: http://example.kanboard.net/ (usato per generare URL assolute)',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/ja_JP/translations.php b/app/Locale/ja_JP/translations.php
index 3d22ce32..7e91a28e 100644
--- a/app/Locale/ja_JP/translations.php
+++ b/app/Locale/ja_JP/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => '変更',
'remove' => '削除する',
'Remove' => '削除する',
- 'Update' => '変更',
'Yes' => 'はい',
'No' => 'いいえ',
'cancel' => 'キャンセル',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'アクション',
'Inactive' => '無効',
'Active' => '有効',
- 'Add this column' => 'カラムを追加する',
'%d tasks on the board' => '%d 個のタスク',
'%d tasks in total' => '合計 %d 個のタスク',
'Unable to update this board.' => 'ボードを更新できませんでした',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => '自動アクションの削除に失敗しました。',
'Action removed successfully.' => '自動アクションの削除に成功しました。',
'Automatic actions for the project "%s"' => 'プロジェクト「%s」の自動アクション',
- 'Defined actions' => '定義された自動アクション',
'Add an action' => '自動アクションの追加',
'Event name' => 'イベント名',
'Action name' => 'アクション名',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => '選択されたイベントが発生した時、対応するアクションを実行する。',
'Next step' => '次のステップ',
'Define action parameters' => 'アクションのパラメーター',
- 'Save this action' => 'このアクションを保存する',
'Do you really want to remove this action: "%s"?' => '自動アクション「%s」を削除しますか?',
'Remove an automatic action' => '自動アクションの削除',
'Assign the task to a specific user' => 'タスクの担当者を割り当てる',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/my_MY/translations.php b/app/Locale/my_MY/translations.php
index e2bc6117..cb22f6fe 100644
--- a/app/Locale/my_MY/translations.php
+++ b/app/Locale/my_MY/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Sunting',
'remove' => 'hapus',
'Remove' => 'Hapus',
- 'Update' => 'Kemaskini',
'Yes' => 'Ya',
'No' => 'Tidak',
'cancel' => 'batal',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Tindakan',
'Inactive' => 'Tidak Aktif',
'Active' => 'Aktif',
- 'Add this column' => 'Tambahkan kolom ini',
'%d tasks on the board' => '%d tugasan di papan',
'%d tasks in total' => 'Sejumlah %d tugasan',
'Unable to update this board.' => 'Tidak berupaya mengemaskini papan ini',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Tidak dapat menghapus tindakan ini',
'Action removed successfully.' => 'Tindakan berhasil dihapus.',
'Automatic actions for the project "%s"' => 'Tindakan otomatis untuk projek ini « %s »',
- 'Defined actions' => 'Tindakan didefinisikan',
'Add an action' => 'Tambah tindakan',
'Event name' => 'Nama acara',
'Action name' => 'Nama tindakan',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Ketika acara yang dipilih terjadi, melakukan tindakan yang sesuai.',
'Next step' => 'Langkah selanjutnya',
'Define action parameters' => 'Definisi parameter tindakan',
- 'Save this action' => 'Simpan tindakan ini',
'Do you really want to remove this action: "%s"?' => 'Apakah anda yakin akan menghapus tindakan ini « %s » ?',
'Remove an automatic action' => 'Hapus tindakan otomatis',
'Assign the task to a specific user' => 'Menetapkan tugas untuk pengguna tertentu',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/nb_NO/translations.php b/app/Locale/nb_NO/translations.php
index 229e4994..167206c8 100644
--- a/app/Locale/nb_NO/translations.php
+++ b/app/Locale/nb_NO/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Rediger',
'remove' => 'fjern',
'Remove' => 'Fjern',
- 'Update' => 'Oppdater',
'Yes' => 'Ja',
'No' => 'Nei',
'cancel' => 'avbryt',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Handlinger',
'Inactive' => 'Inaktiv',
'Active' => 'Aktiv',
- 'Add this column' => 'Legg til denne kolonnen',
'%d tasks on the board' => '%d Oppgaver på hovedsiden',
'%d tasks in total' => '%d Oppgaver i alt',
'Unable to update this board.' => 'Ikke mulig at oppdatere hovedsiden',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Handlingen kunne ikke fjernes.',
'Action removed successfully.' => 'Handlingen er fjernet.',
'Automatic actions for the project "%s"' => 'Automatiske handlinger for prosjektet "%s"',
- 'Defined actions' => 'Definerte handlinger',
'Add an action' => 'Legg til en handling',
'Event name' => 'Hendelsehet',
'Action name' => 'Handling',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Når den valgte hendelsen oppstår, utfør tilsvarende handling.',
'Next step' => 'Neste',
'Define action parameters' => 'Definer handlingsparametre',
- 'Save this action' => 'Lagre handlingen',
'Do you really want to remove this action: "%s"?' => 'Vil du slette denne handlingen: "%s"?',
'Remove an automatic action' => 'Fjern en automatisk handling',
'Assign the task to a specific user' => 'Tildel oppgaven til en bestemt bruker',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/nl_NL/translations.php b/app/Locale/nl_NL/translations.php
index 51cf95bd..1aa58a19 100644
--- a/app/Locale/nl_NL/translations.php
+++ b/app/Locale/nl_NL/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Bewerken',
'remove' => 'verwijderen',
'Remove' => 'Verwijderen',
- 'Update' => 'Update',
'Yes' => 'Ja',
'No' => 'Nee',
'cancel' => 'annuleren',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Acties',
'Inactive' => 'Inactief',
'Active' => 'Actief',
- 'Add this column' => 'Deze kolom toevoegen',
'%d tasks on the board' => '%d taken op het bord',
'%d tasks in total' => '%d taken in totaal',
'Unable to update this board.' => 'Update van dit bord niet mogelijk.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Actie verwijderen niet gelukt',
'Action removed successfully.' => 'Actie succesvol verwijder.',
'Automatic actions for the project "%s"' => 'Automatiseer acties voor project « %s »',
- 'Defined actions' => 'Gedefinieerde acties',
'Add an action' => 'Actie toevoegen',
'Event name' => 'Naam gebeurtenis',
'Action name' => 'Actie naam',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Als de geselecteerde gebeurtenis optreedt de volgende actie uitvoeren',
'Next step' => 'Volgende stap',
'Define action parameters' => 'Bepaal actie parameters',
- 'Save this action' => 'Actie opslaan',
'Do you really want to remove this action: "%s"?' => 'Weet u zeker dat u de volgende actie wil verwijderen : « %s » ?',
'Remove an automatic action' => 'Automatische actie verwijderen',
'Assign the task to a specific user' => 'Taak toewijzen aan een gebruiker',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/pl_PL/translations.php b/app/Locale/pl_PL/translations.php
index 9caa6b88..8e2a3f82 100644
--- a/app/Locale/pl_PL/translations.php
+++ b/app/Locale/pl_PL/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Edytuj',
'remove' => 'usuń',
'Remove' => 'Usuń',
- 'Update' => 'Aktualizuj',
'Yes' => 'Tak',
'No' => 'Nie',
'cancel' => 'anuluj',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Akcje',
'Inactive' => 'Nieaktywny',
'Active' => 'Aktywny',
- 'Add this column' => 'Dodaj kolumnę',
'%d tasks on the board' => '%d zadań na tablicy',
'%d tasks in total' => '%d wszystkich zadań',
'Unable to update this board.' => 'Nie można zaktualizować tablicy.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Nie można usunąć akcji',
'Action removed successfully.' => 'Akcja usunięta',
'Automatic actions for the project "%s"' => 'Akcje automatyczne dla projektu "%s"',
- 'Defined actions' => 'Zdefiniowane akcje',
'Add an action' => 'Nowa akcja',
'Event name' => 'Nazwa zdarzenia',
'Action name' => 'Nazwa akcji',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Gdy następuje wybrane zdarzenie, uruchom odpowiednią akcję',
'Next step' => 'Następny krok',
'Define action parameters' => 'Zdefiniuj parametry akcji',
- 'Save this action' => 'Zapisz akcję',
'Do you really want to remove this action: "%s"?' => 'Na pewno chcesz usunąć akcję "%s"?',
'Remove an automatic action' => 'Usuń akcję automatyczną',
'Assign the task to a specific user' => 'Przypisz zadanie do wybranego użytkownika',
@@ -1036,7 +1032,7 @@ return array(
'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'Wtyczki obsługujące dodatkowe powiadomienia nie zostały zainstalowane. Dalej jednak możesz korzystać z standardowych powiadomień (sprawdź w ustawieniach Twojego profilu).',
'My dashboard' => 'Mój dashboard',
'My profile' => 'Mój profil',
- 'Project owner:' => 'Właściciel:',
+ // 'Project owner: ' => '',
'The project identifier is optional and must be alphanumeric, example: MYPROJECT.' => 'Identyfikator projektu jest opcjonalny i musi być alfanumeryczny, przykład: MYPROJECT.',
'Project owner' => 'Właściciel projektu',
'Those dates are useful for the project Gantt chart.' => 'Daty te są przydatne dla wykresu Gantta.',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/pt_BR/translations.php b/app/Locale/pt_BR/translations.php
index bcbd03d4..17994cfd 100644
--- a/app/Locale/pt_BR/translations.php
+++ b/app/Locale/pt_BR/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Editar',
'remove' => 'remover',
'Remove' => 'Remover',
- 'Update' => 'Atualizar',
'Yes' => 'Sim',
'No' => 'Não',
'cancel' => 'cancelar',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Ações',
'Inactive' => 'Inativo',
'Active' => 'Ativo',
- 'Add this column' => 'Adicionar esta coluna',
'%d tasks on the board' => '%d tarefas no board',
'%d tasks in total' => '%d tarefas no total',
'Unable to update this board.' => 'Não foi possível atualizar este board.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Não é possível remover esta ação.',
'Action removed successfully.' => 'Ação removida com sucesso.',
'Automatic actions for the project "%s"' => 'Ações automáticas para o projeto "%s"',
- 'Defined actions' => 'Ações definidas',
'Add an action' => 'Adicionar Ação',
'Event name' => 'Nome do evento',
'Action name' => 'Nome da ação',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Quando o evento selecionado ocorrer execute a ação correspondente.',
'Next step' => 'Próximo passo',
'Define action parameters' => 'Definir parêmetros da ação',
- 'Save this action' => 'Salvar esta ação',
'Do you really want to remove this action: "%s"?' => 'Você realmente deseja remover esta ação: "%s"?',
'Remove an automatic action' => 'Remover uma ação automática',
'Assign the task to a specific user' => 'Designar a tarefa para um usuário específico',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/pt_PT/translations.php b/app/Locale/pt_PT/translations.php
index 82412733..5e8c50a8 100644
--- a/app/Locale/pt_PT/translations.php
+++ b/app/Locale/pt_PT/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Editar',
'remove' => 'remover',
'Remove' => 'Remover',
- 'Update' => 'Actualizar',
'Yes' => 'Sim',
'No' => 'Não',
'cancel' => 'cancelar',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Acções',
'Inactive' => 'Inactivo',
'Active' => 'Activo',
- 'Add this column' => 'Adicionar esta coluna',
'%d tasks on the board' => '%d tarefas no quadro',
'%d tasks in total' => '%d tarefas no total',
'Unable to update this board.' => 'Não foi possível actualizar este quadro.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Não é possível remover esta acção.',
'Action removed successfully.' => 'Acção removida com sucesso.',
'Automatic actions for the project "%s"' => 'Acções automáticas para o projecto "%s"',
- 'Defined actions' => 'Acções definidas',
'Add an action' => 'Adicionar Acção',
'Event name' => 'Nome do evento',
'Action name' => 'Nome da acção',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Quando o evento selecionado ocorrer execute a acção correspondente.',
'Next step' => 'Próximo passo',
'Define action parameters' => 'Definir parêmetros da acção',
- 'Save this action' => 'Guardar esta acção',
'Do you really want to remove this action: "%s"?' => 'Tem a certeza que quer remover esta acção: "%s"?',
'Remove an automatic action' => 'Remover uma acção automática',
'Assign the task to a specific user' => 'Designar a tarefa para um utilizador específico',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/ru_RU/translations.php b/app/Locale/ru_RU/translations.php
index 0d73f903..3a1c22bf 100644
--- a/app/Locale/ru_RU/translations.php
+++ b/app/Locale/ru_RU/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Изменить',
'remove' => 'удалить',
'Remove' => 'Удалить',
- 'Update' => 'Обновить',
'Yes' => 'Да',
'No' => 'Нет',
'cancel' => 'Отменить',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Действия',
'Inactive' => 'Неактивен',
'Active' => 'Активен',
- 'Add this column' => 'Добавить колонку',
'%d tasks on the board' => '%d задач на доске',
'%d tasks in total' => 'всего %d задач',
'Unable to update this board.' => 'Не удалось обновить эту доску.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Не удалось удалить действие',
'Action removed successfully.' => 'Действие удалено.',
'Automatic actions for the project "%s"' => 'Автоматические действия для проекта « %s »',
- 'Defined actions' => 'Заданные действия',
'Add an action' => 'Добавить действие',
'Event name' => 'Имя события',
'Action name' => 'Имя действия',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Когда случится ВЫБРАННОЕ событие выполняется СООТВЕТСТВУЮЩЕЕ действие.',
'Next step' => 'Следующий шаг',
'Define action parameters' => 'Задать параметры действия',
- 'Save this action' => 'Сохранить это действие',
'Do you really want to remove this action: "%s"?' => 'Вы точно хотите удалить это действие: « %s » ?',
'Remove an automatic action' => 'Удалить автоматическое действие',
'Assign the task to a specific user' => 'Назначить задачу определенному пользователю',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/sr_Latn_RS/translations.php b/app/Locale/sr_Latn_RS/translations.php
index 3825ecde..8504c0c5 100644
--- a/app/Locale/sr_Latn_RS/translations.php
+++ b/app/Locale/sr_Latn_RS/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Izmeni',
'remove' => 'ukloni',
'Remove' => 'Ukloni',
- 'Update' => 'Ažuriraj',
'Yes' => 'Da',
'No' => 'Ne',
'cancel' => 'odustani',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Akcje',
'Inactive' => 'Neaktivan',
'Active' => 'Aktivan',
- 'Add this column' => 'Dodaj kolonu',
'%d tasks on the board' => '%d zadataka na tabli',
'%d tasks in total' => '%d zadataka ukupno',
'Unable to update this board.' => 'Nemogu da ažuriram ovu tablu.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Nije moguće obrisati akciju',
'Action removed successfully.' => 'Akcija obrisana',
'Automatic actions for the project "%s"' => 'Akcje za automatizaciju projekta "%s"',
- 'Defined actions' => 'Definisane akcje',
'Add an action' => 'dodaj akcju',
'Event name' => 'Naziv događaja',
'Action name' => 'Naziv akcije',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Kad se događaj desi izvrši odgovarajuću akciju',
'Next step' => 'Sledeći korak',
'Define action parameters' => 'Definiši parametre akcije',
- 'Save this action' => 'Snimi akciju',
'Do you really want to remove this action: "%s"?' => 'Da li da obrišem akciju "%s"?',
'Remove an automatic action' => 'Obriši automatsku akciju',
'Assign the task to a specific user' => 'Dodeli zadatak određenom korisniku',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/sv_SE/translations.php b/app/Locale/sv_SE/translations.php
index 96a28b2c..b04dc3f9 100644
--- a/app/Locale/sv_SE/translations.php
+++ b/app/Locale/sv_SE/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Redigera',
'remove' => 'ta bort',
'Remove' => 'Ta bort',
- 'Update' => 'Uppdatera',
'Yes' => 'Ja',
'No' => 'Nej',
'cancel' => 'avbryt',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'Åtgärder',
'Inactive' => 'Inaktiv',
'Active' => 'Aktiv',
- 'Add this column' => 'Lägg till kolumnen',
'%d tasks on the board' => '%d uppgifter på tavlan',
'%d tasks in total' => '%d uppgifter totalt',
'Unable to update this board.' => 'Kunde inte uppdatera tavlan',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Kunde inte ta bort denna åtgärd.',
'Action removed successfully.' => 'Åtgärden har tagits bort.',
'Automatic actions for the project "%s"' => 'Automatiska åtgärder för projektet "%s"',
- 'Defined actions' => 'Definierade åtgärder',
'Add an action' => 'Lägg till en åtgärd',
'Event name' => 'Händelsenamn',
'Action name' => 'Åtgärdsnamn',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'När händelsen inträffar, kör inställd åtgärd.',
'Next step' => 'Nästa steg',
'Define action parameters' => 'Definiera upp händelseparametrar',
- 'Save this action' => 'Spara denna åtgärd',
'Do you really want to remove this action: "%s"?' => 'Vill du verkligen ta bort denna åtgärd: "%s"?',
'Remove an automatic action' => 'Ta bort en automatiskt åtgärd',
'Assign the task to a specific user' => 'Tilldela uppgiften till en specifik användare',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/th_TH/translations.php b/app/Locale/th_TH/translations.php
index f26ee30d..e6c2d513 100644
--- a/app/Locale/th_TH/translations.php
+++ b/app/Locale/th_TH/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'แก้ไข',
'remove' => 'ลบ',
'Remove' => 'ลบ',
- 'Update' => 'ปรับปรุง',
'Yes' => 'ใช่',
'No' => 'ไม่',
'cancel' => 'ยกเลิก',
@@ -20,15 +19,15 @@ return array(
'Red' => 'สีแดง',
'Orange' => 'สีส้ม',
'Grey' => 'สีเทา',
- 'Brown' => 'สีน้ำตาล',
- 'Deep Orange' => 'สีส้มเข้ม',
- 'Dark Grey' => 'สีเทาเข้ม',
- 'Pink' => 'สีชมพู',
- 'Teal' => 'สีเขียวหัวเป็ด',
+ 'Brown' => 'สีน้ำตาล',
+ 'Deep Orange' => 'สีส้มเข้ม',
+ 'Dark Grey' => 'สีเทาเข้ม',
+ 'Pink' => 'สีชมพู',
+ 'Teal' => 'สีเขียวหัวเป็ด',
'Cyan' => 'สีฟ้า',
- 'Lime' => 'สีมะนาว',
- 'Light Green' => 'สีเขียวสว่าง',
- 'Amber' => 'สีเหลืองอำพัน',
+ 'Lime' => 'สีมะนาว',
+ 'Light Green' => 'สีเขียวสว่าง',
+ 'Amber' => 'สีเหลืองอำพัน',
'Save' => 'บันทึก',
'Login' => 'เข้าสู่ระบบ',
'Official website:' => 'เวบไซต์อย่างเป็นทางการ:',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'การกระทำ',
'Inactive' => 'ไม่เปิดใช้งาน',
'Active' => 'เปิดใช้งาน',
- 'Add this column' => 'เพิ่มคอลัมน์',
'%d tasks on the board' => '%d งานบนบอร์ด',
'%d tasks in total' => '%d งานทั้งหมด',
'Unable to update this board.' => 'ไม่สามารถปรับปรุงบอร์ดได้.',
@@ -72,7 +70,6 @@ return array(
'Remove project' => 'ลบโปรเจค',
'Edit the board for "%s"' => 'แก้ไขบอร์ดสำหรับ « %s »',
'All projects' => 'โปรเจคทั้งหมด',
- 'Change columns' => 'เปลี่ยนคอลัมน์',
'Add a new column' => 'เพิ่มคอลัมน์ใหม่',
'Title' => 'หัวเรื่อง',
'Nobody assigned' => 'ไม่กำหนดใคร',
@@ -185,7 +182,6 @@ return array(
'Unable to remove this action.' => 'ไม่สามารถลบการกระทำ',
'Action removed successfully.' => 'ลบการกระทำเรียบร้อยแล้ว',
'Automatic actions for the project "%s"' => 'การกระทำอัตโนมัติสำหรับโปรเจค « %s »',
- 'Defined actions' => 'กำหนดการกระทำ',
'Add an action' => 'เพิ่มการกระทำ',
'Event name' => 'ชื่อเหตุกาณ์',
'Action name' => 'ชื่อการกระทำ',
@@ -195,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'เหตุการ์ที่เลือกจะเกิดขึ้นเมื่อมีการกระทำที่สอดคล้องกัน',
'Next step' => 'ขั้นตอนต่อไป',
'Define action parameters' => 'กำหนดพารามิเตอร์ของการกระทำ',
- 'Save this action' => 'บันทึกการกระทำนี้',
'Do you really want to remove this action: "%s"?' => 'คุณต้องการลบการกระทำ « %s » ใช่หรือไม่?',
'Remove an automatic action' => 'ลบการกระทำอัตโนมัติ',
'Assign the task to a specific user' => 'กำหนดงานให้ผู้ใช้แบบเจาะจง',
@@ -208,8 +203,6 @@ return array(
'Assign a color to a specific user' => 'กำหนดสีให้ผู้ใช้แบบเจาะจง',
'Column title' => 'หัวเรื่องคอลัมน์',
'Position' => 'ตำแหน่ง',
- 'Move Up' => 'ย้ายขึ้น',
- 'Move Down' => 'ย้ายลง',
'Duplicate to another project' => 'ทำซ้ำในโปรเจคอื่น',
'Duplicate' => 'ทำซ้ำ',
'link' => 'ลิงค์',
@@ -245,9 +238,9 @@ return array(
'%d comment' => '%d ความคิดเห็น',
'Email address invalid' => 'อีเมลผิด',
'Your external account is not linked anymore to your profile.' => 'บัญชีภายนอกของคุณไม่ได้เชื่อมโยงอีกต่อไปในโปรไฟล์ของคุณ',
- 'Unable to unlink your external account.' => 'ไม่สามารถยกเลิกการเชื่อมโยงบัญชีภายนอกของคุณ',
- 'External authentication failed' => 'การตรวจสอบภายนอกล้มเหลว',
- 'Your external account is linked to your profile successfully.' => 'บัญชีภายนอกของคุณลิงค์กับโปรไฟล์ของคุณเรียบร้อย',
+ 'Unable to unlink your external account.' => 'ไม่สามารถยกเลิกการเชื่อมโยงบัญชีภายนอกของคุณ',
+ 'External authentication failed' => 'การตรวจสอบภายนอกล้มเหลว',
+ 'Your external account is linked to your profile successfully.' => 'บัญชีภายนอกของคุณลิงค์กับโปรไฟล์ของคุณเรียบร้อย',
'Email' => 'อีเมล',
'Task removed successfully.' => 'ลบงานเรียบร้อยแล้ว',
'Unable to remove this task.' => 'ไม่สามารถลบงานนี้',
@@ -295,7 +288,7 @@ return array(
'estimated' => 'ประมาณ',
'Sub-Tasks' => 'งานย่อย',
'Add a sub-task' => 'เพิ่มงานย่อย',
- 'Original estimate' => 'ประมาณการเดิม',
+ 'Original estimate' => 'ประมาณการเดิม',
'Create another sub-task' => 'สร้างงานย่อยอื่น',
'Time spent' => 'ใช้เวลา',
'Edit a sub-task' => 'แก้ไขงานย่อย',
@@ -409,14 +402,14 @@ return array(
'Default values are "%s"' => 'ค่าเริ่มต้น "%s"',
'Default columns for new projects (Comma-separated)' => 'คอลัมน์เริ่มต้นสำหรับโปรเจคใหม่ (Comma-separated)',
'Task assignee change' => 'เปลี่ยนการกำหนดบุคคลของงาน',
- '%s change the assignee of the task #%d to %s' => '%s เปลี่ยนผู้รับผิดชอบของงาน #%d เป็น %s',
- '%s changed the assignee of the task %s to %s' => '%s เปลี่ยนผู้รับผิดชอบของงาน %s เป็น %s',
+ '%s change the assignee of the task #%d to %s' => '%s เปลี่ยนผู้รับผิดชอบของงาน #%d เป็น %s',
+ '%s changed the assignee of the task %s to %s' => '%s เปลี่ยนผู้รับผิดชอบของงาน %s เป็น %s',
'New password for the user "%s"' => 'รหัสผ่านใหม่สำหรับผู้ใช้ "%s"',
'Choose an event' => 'เลือกเหตุการณ์',
- 'Create a task from an external provider' => 'สร้างงานจากบริการภายนอก',
- 'Change the assignee based on an external username' => 'เปลี่ยนผู้รับผิดชอบขึ้นอยู่กับชื่อผู้ใช้ภายนอก',
- 'Change the category based on an external label' => 'เปลี่ยนหมวดขึ้นอยู่กับป้ายชื่อภายนอก',
- 'Reference' => 'อ้างถึง',
+ 'Create a task from an external provider' => 'สร้างงานจากบริการภายนอก',
+ 'Change the assignee based on an external username' => 'เปลี่ยนผู้รับผิดชอบขึ้นอยู่กับชื่อผู้ใช้ภายนอก',
+ 'Change the category based on an external label' => 'เปลี่ยนหมวดขึ้นอยู่กับป้ายชื่อภายนอก',
+ 'Reference' => 'อ้างถึง',
'Label' => 'ป้ายชื่อ',
'Database' => 'ฐานข้อมูล',
'About' => 'เกี่ยวกับ',
@@ -436,7 +429,7 @@ return array(
// 'Application URL' => '',
// 'Token regenerated.' => '',
'Date format' => 'รูปแบบวันที่',
- 'ISO format is always accepted, example: "%s" and "%s"' => 'ยอมรับรูปแบบ ISO ตัวอย่าง: "%s" และ "%s"',
+ 'ISO format is always accepted, example: "%s" and "%s"' => 'ยอมรับรูปแบบ ISO ตัวอย่าง: "%s" และ "%s"',
'New private project' => 'เพิ่มโปรเจคส่วนตัวใหม่',
'This project is private' => 'โปรเจคนี้เป็นโปรเจคส่วนตัว',
'Type here to create a new sub-task' => 'พิมพ์ที่นี้เพื่อสร้างงานย่อยใหม่',
@@ -452,7 +445,7 @@ return array(
'Everybody have access to this project.' => 'ทุกคนสามารถเข้าถึงโปรเจคนี้',
// 'Webhooks' => '',
// 'API' => '',
- 'Create a comment from an external provider' => 'สร้างความคิดเห็นจากบริการภายนอก',
+ 'Create a comment from an external provider' => 'สร้างความคิดเห็นจากบริการภายนอก',
'Project management' => 'การจัดการโปรเจค',
'My projects' => 'โปรเจคของฉัน',
'Columns' => 'คอลัมน์',
@@ -500,7 +493,6 @@ return array(
'Do you really want to remove this swimlane: "%s"?' => 'คุณต้องการลบสวิมเลนนี้ : "%s"?',
'Inactive swimlanes' => 'สวิมเลนไม่ทำงาน',
'Remove a swimlane' => 'ลบสวิมเลน',
- 'Rename' => 'เปลี่ยนชื่อ',
'Show default swimlane' => 'แสดงสวิมเลนเริ่มต้น',
'Swimlane modification for the project "%s"' => 'แก้ไขสวิมเลนสำหรับโปรเจค "%s"',
'Swimlane not found.' => 'หาสวิมเลนไม่พบ',
@@ -508,7 +500,6 @@ return array(
'Swimlanes' => 'สวิมเลน',
'Swimlane updated successfully.' => 'ปรับปรุงสวิมเลนเรียบร้อยแล้ว',
'The default swimlane have been updated successfully.' => 'สวิมเลนเริ่มต้นปรับปรุงเรียบร้อยแล้ว',
- 'Unable to create your swimlane.' => 'ไม่สามารถสร้างสวิมเลนของคุณได้',
'Unable to remove this swimlane.' => 'ไม่สามารถลบสวิมเลนนี้',
'Unable to update this swimlane.' => 'ไม่สามารถปรับปรุงสวิมเลนนี้',
'Your swimlane have been created successfully.' => 'สวิมเลนของคุณถูกสร้างเรียบร้อยแล้ว',
@@ -528,7 +519,7 @@ return array(
'All columns' => 'คอลัมน์ทั้งหมด',
'Calendar' => 'ปฏิทิน',
'Next' => 'ต่อไป',
- '#%d' => '#%d',
+ '#%d' => '#%d',
'All swimlanes' => 'สวิมเลนทั้งหมด',
'All colors' => 'สีทั้งหมด',
'Moved to column %s' => 'เคลื่อนไปคอลัมน์ %s',
@@ -541,17 +532,17 @@ return array(
'There is nothing to show.' => 'ไม่มีที่ต้องแสดง',
'Time Tracking' => 'ติดตามเวลา',
'You already have one subtask in progress' => 'คุณมีหนึ่งงานย่อยที่กำลังทำงาน',
- 'Which parts of the project do you want to duplicate?' => 'เลือกส่วนของโปรเจคที่คุณต้องการทำซ้ำ?',
- 'Disallow login form' => 'ไม่อนุญาตให้ใช้แบบฟอร์มการเข้าสู่ระบบ',
+ 'Which parts of the project do you want to duplicate?' => 'เลือกส่วนของโปรเจคที่คุณต้องการทำซ้ำ?',
+ 'Disallow login form' => 'ไม่อนุญาตให้ใช้แบบฟอร์มการเข้าสู่ระบบ',
'Start' => 'เริ่ม',
'End' => 'จบ',
'Task age in days' => 'อายุงาน',
'Days in this column' => 'วันในคอลัมน์นี้',
- '%dd' => '%d วัน',
+ '%dd' => '%d วัน',
'Add a link' => 'เพิ่มลิงค์',
'Add a new link' => 'เพิ่มลิงค์ใหม่',
'Do you really want to remove this link: "%s"?' => 'คุณต้องการลบลิงค์นี้: "%s"?',
- 'Do you really want to remove this link with task #%d?' => 'คุณต้องการลบลิงค์นี้ของงาน #%d?',
+ 'Do you really want to remove this link with task #%d?' => 'คุณต้องการลบลิงค์นี้ของงาน #%d?',
'Field required' => 'ต้องใส่',
'Link added successfully.' => 'เพิ่มลิงค์เรียบร้อยแล้ว',
'Link updated successfully.' => 'ปรับปรุงลิงค์เรียบร้อยแล้ว',
@@ -581,8 +572,8 @@ return array(
'fixes' => 'เจาะจง',
'is fixed by' => 'ถูกเจาะจงด้วย',
'This task' => 'งานนี้',
- '<1h' => '<1 ชม.',
- '%dh' => '%d ชม.',
+ '<1h' => '<1 ชม.',
+ '%dh' => '%d ชม.',
'Expand tasks' => 'ขยายงาน',
'Collapse tasks' => 'ย่องาน',
'Expand/collapse tasks' => 'ขยาย/ย่อ งาน',
@@ -597,21 +588,19 @@ return array(
'Compact/wide view' => 'พอดี/กว้าง มุมมอง',
'No results match:' => 'ไม่มีผลลัพท์ที่ตรง',
'Currency' => 'สกุลเงิน',
- 'Files' => 'ไฟล์',
- 'Images' => 'รูปภาพ',
'Private project' => 'โปรเจคส่วนตัว',
- 'AUD - Australian Dollar' => 'AUD - ดอลลาร์ออสเตรเลีย',
- 'CAD - Canadian Dollar' => 'CAD - ดอลลาร์แคนาดา',
- 'CHF - Swiss Francs' => 'CHF - ฟรังก์สวิส',
- 'Custom Stylesheet' => 'สไตล์ที่กำหนดเอง',
+ 'AUD - Australian Dollar' => 'AUD - ดอลลาร์ออสเตรเลีย',
+ 'CAD - Canadian Dollar' => 'CAD - ดอลลาร์แคนาดา',
+ 'CHF - Swiss Francs' => 'CHF - ฟรังก์สวิส',
+ 'Custom Stylesheet' => 'สไตล์ที่กำหนดเอง',
'download' => 'ดาวน์โหลด',
- 'EUR - Euro' => 'EUR - ยูโร',
- 'GBP - British Pound' => 'GBP - ปอนด์อังกฤษ',
- 'INR - Indian Rupee' => 'INR - รูปี',
- 'JPY - Japanese Yen' => 'JPY - เยน',
- 'NZD - New Zealand Dollar' => 'NZD - ดอลลาร์นิวซีแลนด์',
- 'RSD - Serbian dinar' => 'RSD - ดีนาร์เซอร์เบีย',
- 'USD - US Dollar' => 'USD - ดอลลาร์สหรัฐ',
+ 'EUR - Euro' => 'EUR - ยูโร',
+ 'GBP - British Pound' => 'GBP - ปอนด์อังกฤษ',
+ 'INR - Indian Rupee' => 'INR - รูปี',
+ 'JPY - Japanese Yen' => 'JPY - เยน',
+ 'NZD - New Zealand Dollar' => 'NZD - ดอลลาร์นิวซีแลนด์',
+ 'RSD - Serbian dinar' => 'RSD - ดีนาร์เซอร์เบีย',
+ 'USD - US Dollar' => 'USD - ดอลลาร์สหรัฐ',
'Destination column' => 'คอลัมน์เป้าหมาย',
'Move the task to another column when assigned to a user' => 'ย้ายงานไปคอลัมน์อื่นเมื่อกำหนดบุคคลรับผิดชอบ',
'Move the task to another column when assignee is cleared' => 'ย้ายงานไปคอลัมน์อื่นเมื่อไม่กำหนดบุคคลรับผิดชอบ',
@@ -621,16 +610,16 @@ return array(
'Time spent in the column' => 'เวลาที่ใช้ในคอลัมน์',
'Task transitions' => 'การเปลี่ยนคอลัมน์งาน',
'Task transitions export' => 'ส่งออกการเปลี่ยนคอลัมน์งาน',
- 'This report contains all column moves for each task with the date, the user and the time spent for each transition.' => 'รายงานนี้มีการเคลื่อนไหวคอลัมน์ทั้งหมดของงานแต่ละงานมีวันที่ผู้ใช้และเวลาที่ใช้สำหรับแต่ละการเปลี่ยนแปลง',
+ 'This report contains all column moves for each task with the date, the user and the time spent for each transition.' => 'รายงานนี้มีการเคลื่อนไหวคอลัมน์ทั้งหมดของงานแต่ละงานมีวันที่ผู้ใช้และเวลาที่ใช้สำหรับแต่ละการเปลี่ยนแปลง',
'Currency rates' => 'อัตราค่าเงิน',
'Rate' => 'อัตรา',
- 'Change reference currency' => 'เปลี่ยนการอ้างถึงค่าเงิน',
+ 'Change reference currency' => 'เปลี่ยนการอ้างถึงค่าเงิน',
'Add a new currency rate' => 'เพิ่มอัตราค่าเงินใหม่',
- 'Reference currency' => 'อ้างถึงค่าเงิน',
- 'The currency rate have been added successfully.' => 'เพิ่มอัตราค่าเงินเรียบร้อย',
- 'Unable to add this currency rate.' => 'ไม่สามารถเพิ่มค่าเงินนี้',
+ 'Reference currency' => 'อ้างถึงค่าเงิน',
+ 'The currency rate have been added successfully.' => 'เพิ่มอัตราค่าเงินเรียบร้อย',
+ 'Unable to add this currency rate.' => 'ไม่สามารถเพิ่มค่าเงินนี้',
// 'Webhook URL' => '',
- '%s remove the assignee of the task %s' => '%s เอาผู้รับผิดชอบออกจากงาน %s',
+ '%s remove the assignee of the task %s' => '%s เอาผู้รับผิดชอบออกจากงาน %s',
'Enable Gravatar images' => 'สามารถใช้งานภาพ Gravatar',
'Information' => 'ข้อมูลสารสนเทศ',
// 'Check two factor authentication code' => '',
@@ -644,46 +633,43 @@ return array(
'Test your device' => 'ทดสอบอุปกรณ์ของคุณ',
'Assign a color when the task is moved to a specific column' => 'กำหนดสีเมื่องานถูกย้ายไปคอลัมน์ที่กำหนดไว้',
// '%s via Kanboard' => '',
- 'uploaded by: %s' => 'อัพโหลดโดย: %s',
- 'uploaded on: %s' => 'อัพโหลดบน: %s',
- 'size: %s' => 'ขนาด: %s',
'Burndown chart for "%s"' => 'แผนภูมิงานกับเวลา "%s"',
'Burndown chart' => 'แผนภูมิงานกับเวลา',
- 'This chart show the task complexity over the time (Work Remaining).' => 'แผนภูมิแสดงความซับซ้อนของงานตามเวลา (งานที่เหลือ)',
- 'Screenshot taken %s' => 'จับภาพหน้าจอ %s',
+ 'This chart show the task complexity over the time (Work Remaining).' => 'แผนภูมิแสดงความซับซ้อนของงานตามเวลา (งานที่เหลือ)',
+ 'Screenshot taken %s' => 'จับภาพหน้าจอ %s',
'Add a screenshot' => 'เพิ่ม screenshot',
- 'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'จับภาพหน้าจอ (screenshot) และกด CTRL+V หรือ ⌘+V เพื่อวางที่นี้',
+ 'Take a screenshot and press CTRL+V or ⌘+V to paste here.' => 'จับภาพหน้าจอ (screenshot) และกด CTRL+V หรือ ⌘+V เพื่อวางที่นี้',
'Screenshot uploaded successfully.' => 'อัพโหลด screenshot เรียบร้อยแล้ว',
- 'SEK - Swedish Krona' => 'SEK - โครนสวีเดน',
- 'Identifier' => 'ตัวบ่งชี้',
+ 'SEK - Swedish Krona' => 'SEK - โครนสวีเดน',
+ 'Identifier' => 'ตัวบ่งชี้',
// 'Disable two factor authentication' => '',
- 'Do you really want to disable the two factor authentication for this user: "%s"?' => 'คุณต้องการยกเลิก the two factor authentication สำหรับผู้ใช้นีั: "%s"?',
+ 'Do you really want to disable the two factor authentication for this user: "%s"?' => 'คุณต้องการยกเลิก the two factor authentication สำหรับผู้ใช้นีั: "%s"?',
'Edit link' => 'แก้ไขลิงค์',
'Start to type task title...' => 'พิมพ์ชื่องาน',
'A task cannot be linked to itself' => 'งานไม่สามารถลิงค์ตัวเอง',
// 'The exact same link already exists' => '',
'Recurrent task is scheduled to be generated' => 'งานแบบวนลูปถูกสร้างตามที่กำหนดไว้',
'Score' => 'คะแนน',
- 'The identifier must be unique' => 'ตัวบ่งชี้ต้องไม่ซ้ำ',
+ 'The identifier must be unique' => 'ตัวบ่งชี้ต้องไม่ซ้ำ',
// 'This linked task id doesn\'t exists' => '',
'This value must be alphanumeric' => 'ค่านี้ต้องเป็นตัวอักษร',
'Edit recurrence' => 'แก้ไขการวนลูป',
'Generate recurrent task' => 'สร้างงานที่เป็นวนลูป',
'Trigger to generate recurrent task' => 'จะสร้างงานแบบวนลูป',
- 'Factor to calculate new due date' => 'ปัจจัยการคำนวณวันครบกำหนดใหม่',
- 'Timeframe to calculate new due date' => 'ระยะเวลาการคำนวณวันครบกำหนดใหม่',
- 'Base date to calculate new due date' => 'ฐานวันที่การคำนวณวันครบกำหนดใหม่',
- 'Action date' => 'วันที่ทำ',
- 'Base date to calculate new due date: ' => 'ฐานวันที่การคำนวณวันครบกำหนดใหม่: ',
+ 'Factor to calculate new due date' => 'ปัจจัยการคำนวณวันครบกำหนดใหม่',
+ 'Timeframe to calculate new due date' => 'ระยะเวลาการคำนวณวันครบกำหนดใหม่',
+ 'Base date to calculate new due date' => 'ฐานวันที่การคำนวณวันครบกำหนดใหม่',
+ 'Action date' => 'วันที่ทำ',
+ 'Base date to calculate new due date: ' => 'ฐานวันที่การคำนวณวันครบกำหนดใหม่: ',
'This task has created this child task: ' => 'งานนี้สร้างงานลูกคือ',
'Day(s)' => 'วัน',
- 'Existing due date' => 'วันครบกำหนดที่มีอยู่',
- 'Factor to calculate new due date: ' => 'ปัจจัยการคำนวณวันครบกำหนดใหม่: ',
+ 'Existing due date' => 'วันครบกำหนดที่มีอยู่',
+ 'Factor to calculate new due date: ' => 'ปัจจัยการคำนวณวันครบกำหนดใหม่: ',
'Month(s)' => 'เดือน',
'Recurrence' => 'วนลูป',
'This task has been created by: ' => 'งานนี้ถูกสร้างโดย',
'Recurrent task has been generated:' => 'งานแบบวนลูปถูกสร้าง',
- 'Timeframe to calculate new due date: ' => 'ระยะเวลาการคำนวณวันครบกำหนดใหม่: ',
+ 'Timeframe to calculate new due date: ' => 'ระยะเวลาการคำนวณวันครบกำหนดใหม่: ',
'Trigger to generate recurrent task: ' => 'จะสร้างงานแบบวนลูป',
'When task is closed' => 'เมื่อปิดงาน',
'When task is moved from first column' => 'เมื่องานถูกย้ายจากคอลัมน์แรก',
@@ -705,416 +691,464 @@ return array(
// 'Two factor authentication enabled' => '',
'Unable to update this user.' => 'ไม่สามารถปรับปรุงผู้ใช้นี้',
'There is no user management for private projects.' => 'ไม่มีการจัดการผู้ใช้สำหรับโปรเจคส่วนตัว',
- 'User that will receive the email' => 'ผู้ใช้จะได้รับอีเมล์',
- 'Email subject' => 'หัวเรื่องอีเมล์',
- 'Date' => 'วันที่',
- 'Add a comment log when moving the task between columns' => 'เพิ่มล็อกความคิดเห็นเมื่อย้ายงานระหว่างคอลัมน์',
- 'Move the task to another column when the category is changed' => 'ย้ายงานไปคอลัมน์อื่นเมื่อหมวดถูกเปลี่ยน',
- 'Send a task by email to someone' => 'ส่งงานโดยถึงบางคน',
- 'Reopen a task' => 'เปิดงานอีกครั้ง',
+ 'User that will receive the email' => 'ผู้ใช้จะได้รับอีเมล์',
+ 'Email subject' => 'หัวเรื่องอีเมล์',
+ 'Date' => 'วันที่',
+ 'Add a comment log when moving the task between columns' => 'เพิ่มล็อกความคิดเห็นเมื่อย้ายงานระหว่างคอลัมน์',
+ 'Move the task to another column when the category is changed' => 'ย้ายงานไปคอลัมน์อื่นเมื่อหมวดถูกเปลี่ยน',
+ 'Send a task by email to someone' => 'ส่งงานโดยถึงบางคน',
+ 'Reopen a task' => 'เปิดงานอีกครั้ง',
'Column change' => 'เปลี่ยนคอลัมน์',
- 'Position change' => 'เปลี่ยนตำแหน่ง',
- 'Swimlane change' => 'เปลี่ยนสวิมเลน',
- 'Assignee change' => 'เปลี่ยนการผู้รับผิดชอบ',
- '[%s] Overdue tasks' => '[%s] งานที่เกินกำหนด',
- 'Notification' => 'แจ้งเตือน',
- '%s moved the task #%d to the first swimlane' => '%s ย้ายงาน #%d ไปสวินเลนแรก',
- '%s moved the task #%d to the swimlane "%s"' => '%s ย้ายงาน #%d ไปสวินเลน "%s"',
- 'Swimlane' => 'สวิมเลน',
- 'Gravatar' => 'รูปแทนตัว',
- '%s moved the task %s to the first swimlane' => '%s ย้ายงาน %s ไปสวินเลนแรก',
- '%s moved the task %s to the swimlane "%s"' => '%s ย้ายงาน %s ไปสวินเลนไปสวินเลน "%s"',
- 'This report contains all subtasks information for the given date range.' => 'รายงานนี้มีข้อมูลงานย่อยทั้งหมดในช่วงวันที่กำหนด',
- 'This report contains all tasks information for the given date range.' => 'รายงานนี้มีข้อมูลงานทั้งหมดสำหรับช่วงวันที่ที่กำหนด',
- 'Project activities for %s' => 'กิจกรรมโปรเจคสำหรับ %s',
- 'view the board on Kanboard' => 'แสดงบอร์ดบนคังบอร์ด',
- 'The task have been moved to the first swimlane' => 'งานถูกย้านไปสวิมเลนแรก',
- 'The task have been moved to another swimlane:' => 'งานถูกย้านไปสวิมเลนอื่น:',
- 'Overdue tasks for the project "%s"' => 'งานที่เกินกำหนดสำหรับโปรเจค "%s"',
- 'New title: %s' => 'ชื่อเรื่องใหม่: %s',
- 'The task is not assigned anymore' => 'ไม่กำหนดผู้รับผิดชอบ',
- 'New assignee: %s' => 'ผู้รับผิดชอบใหม่: %s',
- 'There is no category now' => 'ปัจจุบันไม่มีหมวด',
- 'New category: %s' => 'หมวดใหม่: %s',
- 'New color: %s' => 'สีใหม่: %s',
- 'New complexity: %d' => 'ความซับซ้อนใหม่: %d',
- 'The due date have been removed' => 'วันครบกำหนดถูกลบ',
- 'There is no description anymore' => 'ไม่มีคำอธิบาย',
- 'Recurrence settings have been modified' => 'แก้ไขการตั้งค่าการวนลูป',
- 'Time spent changed: %sh' => 'เวลาที่ใช้ในการเปลี่ยน: %s ชม.',
- 'Time estimated changed: %sh' => 'เวลาโดยประมาณในการเปลี่ยน: %s ชม.',
- 'The field "%s" have been updated' => 'ฟิลด์ "%s" ถูกปรับปรุง',
- 'The description have been modified' => 'คำอธิบายถูกแก้ไข',
- 'Do you really want to close the task "%s" as well as all subtasks?' => 'คุณต้องการปิดงาน "%s" เช่นเดียวกับงานย่อยทั้งหมด?',
- 'I want to receive notifications for:' => 'ฉันต้องการรับการแจ้งเตือนสำหรับ:',
- 'All tasks' => 'ทุกงาน',
- 'Only for tasks assigned to me' => 'เฉพาะงานที่ฉันรับผิดชอบ',
- 'Only for tasks created by me' => 'เฉพาะงานที่ฉันสร้าง',
- 'Only for tasks created by me and assigned to me' => 'เฉพาะงานที่ฉันสร้างและฉันรับผิดชอบ',
+ 'Position change' => 'เปลี่ยนตำแหน่ง',
+ 'Swimlane change' => 'เปลี่ยนสวิมเลน',
+ 'Assignee change' => 'เปลี่ยนการผู้รับผิดชอบ',
+ '[%s] Overdue tasks' => '[%s] งานที่เกินกำหนด',
+ 'Notification' => 'แจ้งเตือน',
+ '%s moved the task #%d to the first swimlane' => '%s ย้ายงาน #%d ไปสวินเลนแรก',
+ '%s moved the task #%d to the swimlane "%s"' => '%s ย้ายงาน #%d ไปสวินเลน "%s"',
+ 'Swimlane' => 'สวิมเลน',
+ 'Gravatar' => 'รูปแทนตัว',
+ '%s moved the task %s to the first swimlane' => '%s ย้ายงาน %s ไปสวินเลนแรก',
+ '%s moved the task %s to the swimlane "%s"' => '%s ย้ายงาน %s ไปสวินเลนไปสวินเลน "%s"',
+ 'This report contains all subtasks information for the given date range.' => 'รายงานนี้มีข้อมูลงานย่อยทั้งหมดในช่วงวันที่กำหนด',
+ 'This report contains all tasks information for the given date range.' => 'รายงานนี้มีข้อมูลงานทั้งหมดสำหรับช่วงวันที่ที่กำหนด',
+ 'Project activities for %s' => 'กิจกรรมโปรเจคสำหรับ %s',
+ 'view the board on Kanboard' => 'แสดงบอร์ดบนคังบอร์ด',
+ 'The task have been moved to the first swimlane' => 'งานถูกย้านไปสวิมเลนแรก',
+ 'The task have been moved to another swimlane:' => 'งานถูกย้านไปสวิมเลนอื่น:',
+ 'Overdue tasks for the project "%s"' => 'งานที่เกินกำหนดสำหรับโปรเจค "%s"',
+ 'New title: %s' => 'ชื่อเรื่องใหม่: %s',
+ 'The task is not assigned anymore' => 'ไม่กำหนดผู้รับผิดชอบ',
+ 'New assignee: %s' => 'ผู้รับผิดชอบใหม่: %s',
+ 'There is no category now' => 'ปัจจุบันไม่มีหมวด',
+ 'New category: %s' => 'หมวดใหม่: %s',
+ 'New color: %s' => 'สีใหม่: %s',
+ 'New complexity: %d' => 'ความซับซ้อนใหม่: %d',
+ 'The due date have been removed' => 'วันครบกำหนดถูกลบ',
+ 'There is no description anymore' => 'ไม่มีคำอธิบาย',
+ 'Recurrence settings have been modified' => 'แก้ไขการตั้งค่าการวนลูป',
+ 'Time spent changed: %sh' => 'เวลาที่ใช้ในการเปลี่ยน: %s ชม.',
+ 'Time estimated changed: %sh' => 'เวลาโดยประมาณในการเปลี่ยน: %s ชม.',
+ 'The field "%s" have been updated' => 'ฟิลด์ "%s" ถูกปรับปรุง',
+ 'The description have been modified' => 'คำอธิบายถูกแก้ไข',
+ 'Do you really want to close the task "%s" as well as all subtasks?' => 'คุณต้องการปิดงาน "%s" เช่นเดียวกับงานย่อยทั้งหมด?',
+ 'I want to receive notifications for:' => 'ฉันต้องการรับการแจ้งเตือนสำหรับ:',
+ 'All tasks' => 'ทุกงาน',
+ 'Only for tasks assigned to me' => 'เฉพาะงานที่ฉันรับผิดชอบ',
+ 'Only for tasks created by me' => 'เฉพาะงานที่ฉันสร้าง',
+ 'Only for tasks created by me and assigned to me' => 'เฉพาะงานที่ฉันสร้างและฉันรับผิดชอบ',
// '%%Y-%%m-%%d' => '',
- 'Total for all columns' => 'จำนวนคอลัมน์ทั้งหมด',
- 'You need at least 2 days of data to show the chart.' => 'คุณต้องการอย่างน้อย 2 วันในการแสดงแผนภูมิ',
- '<15m' => '<15นาที',
- '<30m' => '<30นาที',
- 'Stop timer' => 'หยุดจับเวลา',
- 'Start timer' => 'เริ่มจับเวลา',
- 'Add project member' => 'เพิ่มสมาชิกโปรเจค',
- 'Enable notifications' => 'เปิดการแจ้งเตือน',
- 'My activity stream' => 'กิจกรรมที่เกิดขึ้นของฉัน',
- 'My calendar' => 'ปฎิทินของฉัน',
- 'Search tasks' => 'ค้นหางาน',
- 'Back to the calendar' => 'กลับไปที่ปฎิทิน',
- 'Filters' => 'ตัวกรอง',
- 'Reset filters' => 'ล้างตัวกรอง',
- 'My tasks due tomorrow' => 'งานถึงกำหนดของฉันวันพรุ่งนี้',
- 'Tasks due today' => 'งานถึงกำหนดวันนี้',
- 'Tasks due tomorrow' => 'งานถึงกำหนดพรุ่งนี้',
- 'Tasks due yesterday' => 'งานถึงกำหนดเมื่อวาน',
- 'Closed tasks' => 'งานปิด',
- 'Open tasks' => 'งานเปิด',
- 'Not assigned' => 'ไม่กำหนดใคร',
- 'View advanced search syntax' => 'แสดงรูปแบบการค้นหาขั้นสูง',
- 'Overview' => 'ภาพรวม',
- 'Board/Calendar/List view' => 'มุมมอง บอร์ด/ปฎิทิน/ลิสต์',
- 'Switch to the board view' => 'เปลี่ยนเป็นมุมมองบอร์ด',
- 'Switch to the calendar view' => 'เปลี่ยนเป็นมุมมองปฎิทิน',
- 'Switch to the list view' => 'เปลี่ยนเป็นมุมมองลิสต์',
- 'Go to the search/filter box' => 'ไปที่กล่องค้นหา/ตัวกรอง',
- 'There is no activity yet.' => 'ตอนนี้ไม่มีกิจกรรม',
- 'No tasks found.' => 'ไม่พบงาน',
- 'Keyboard shortcut: "%s"' => 'คีย์ลัด: %s',
- 'List' => 'ลิสต์',
- 'Filter' => 'ตัวกรอง',
- 'Advanced search' => 'ค้นหาขั้นสูง',
- 'Example of query: ' => 'ตัวอย่างคิวรี: ',
- 'Search by project: ' => 'ค้นหาตามโปรเจค: ',
- 'Search by column: ' => 'ค้นหาตามคอลัมน์: ',
- 'Search by assignee: ' => 'ค้นหาตามผู้รับผิดชอบ: ',
- 'Search by color: ' => 'ค้นหาตามสี: ',
- 'Search by category: ' => 'ค้นหาตามหมวด: ',
- 'Search by description: ' => 'ค้นหาตามคำอธิบาย: ',
+ 'Total for all columns' => 'จำนวนคอลัมน์ทั้งหมด',
+ 'You need at least 2 days of data to show the chart.' => 'คุณต้องการอย่างน้อย 2 วันในการแสดงแผนภูมิ',
+ '<15m' => '<15นาที',
+ '<30m' => '<30นาที',
+ 'Stop timer' => 'หยุดจับเวลา',
+ 'Start timer' => 'เริ่มจับเวลา',
+ 'Add project member' => 'เพิ่มสมาชิกโปรเจค',
+ 'Enable notifications' => 'เปิดการแจ้งเตือน',
+ 'My activity stream' => 'กิจกรรมที่เกิดขึ้นของฉัน',
+ 'My calendar' => 'ปฎิทินของฉัน',
+ 'Search tasks' => 'ค้นหางาน',
+ 'Back to the calendar' => 'กลับไปที่ปฎิทิน',
+ 'Filters' => 'ตัวกรอง',
+ 'Reset filters' => 'ล้างตัวกรอง',
+ 'My tasks due tomorrow' => 'งานถึงกำหนดของฉันวันพรุ่งนี้',
+ 'Tasks due today' => 'งานถึงกำหนดวันนี้',
+ 'Tasks due tomorrow' => 'งานถึงกำหนดพรุ่งนี้',
+ 'Tasks due yesterday' => 'งานถึงกำหนดเมื่อวาน',
+ 'Closed tasks' => 'งานปิด',
+ 'Open tasks' => 'งานเปิด',
+ 'Not assigned' => 'ไม่กำหนดใคร',
+ 'View advanced search syntax' => 'แสดงรูปแบบการค้นหาขั้นสูง',
+ 'Overview' => 'ภาพรวม',
+ 'Board/Calendar/List view' => 'มุมมอง บอร์ด/ปฎิทิน/ลิสต์',
+ 'Switch to the board view' => 'เปลี่ยนเป็นมุมมองบอร์ด',
+ 'Switch to the calendar view' => 'เปลี่ยนเป็นมุมมองปฎิทิน',
+ 'Switch to the list view' => 'เปลี่ยนเป็นมุมมองลิสต์',
+ 'Go to the search/filter box' => 'ไปที่กล่องค้นหา/ตัวกรอง',
+ 'There is no activity yet.' => 'ตอนนี้ไม่มีกิจกรรม',
+ 'No tasks found.' => 'ไม่พบงาน',
+ 'Keyboard shortcut: "%s"' => 'คีย์ลัด: %s',
+ 'List' => 'ลิสต์',
+ 'Filter' => 'ตัวกรอง',
+ 'Advanced search' => 'ค้นหาขั้นสูง',
+ 'Example of query: ' => 'ตัวอย่างคิวรี: ',
+ 'Search by project: ' => 'ค้นหาตามโปรเจค: ',
+ 'Search by column: ' => 'ค้นหาตามคอลัมน์: ',
+ 'Search by assignee: ' => 'ค้นหาตามผู้รับผิดชอบ: ',
+ 'Search by color: ' => 'ค้นหาตามสี: ',
+ 'Search by category: ' => 'ค้นหาตามหมวด: ',
+ 'Search by description: ' => 'ค้นหาตามคำอธิบาย: ',
'Search by due date: ' => 'ค้นหาตามวันครบกำหนด: ',
- 'Lead and Cycle time for "%s"' => 'เวลานำและรอบเวลาสำหรับ "%s"',
- 'Average time spent into each column for "%s"' => 'ค่าเฉลี่ยเวลาที่ใช้แต่ละคอลัมน์สำหรับ "%s"',
- 'Average time spent into each column' => 'ค่าเฉลี่ยเวลาที่ใช้แต่ละคอลัมน์',
- 'Average time spent' => 'ค่าเฉลี่ยเวลาที่ใช้',
- 'This chart show the average time spent into each column for the last %d tasks.' => 'แผนภูมิแสดงค่าเฉลี่ยเวลาที่ใช้แต่ละคอลัมน์สำหรับ %d งานล่าสุด',
- 'Average Lead and Cycle time' => 'ค่าเฉลี่ยเวลานำและรอบเวลา',
- 'Average lead time: ' => 'ค่าเฉลี่ยเวลานำ: ',
- 'Average cycle time: ' => 'ค่าเฉลี่ยรอบเวลา: ',
- 'Cycle Time' => 'รอบเวลา',
- 'Lead Time' => 'เวลานำ',
- 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'แผนภูมิแสดงค่าเฉลี่ยเวลานำและรอบเวลาสำหรับ %d งานล่าสุดเมื่อเวลาผ่านไป',
- 'Average time into each column' => 'ค่าเฉลี่ยเวลาแต่ละคอลัมน์',
- 'Lead and cycle time' => 'เวลานำและรอบเวลา',
- 'Lead time: ' => 'เวลานำ: ',
- 'Cycle time: ' => 'รอบเวลา: ',
- 'Time spent into each column' => 'เวลาที่ใช้แต่ละคอลัมน์',
- 'The lead time is the duration between the task creation and the completion.' => 'เวลานำคือระหว่างสร้างงานและจบงาน',
- 'The cycle time is the duration between the start date and the completion.' => 'รอบเวลาคือระหว่างวันที่เริ่มและจบงาน',
+ 'Lead and Cycle time for "%s"' => 'เวลานำและรอบเวลาสำหรับ "%s"',
+ 'Average time spent into each column for "%s"' => 'ค่าเฉลี่ยเวลาที่ใช้แต่ละคอลัมน์สำหรับ "%s"',
+ 'Average time spent into each column' => 'ค่าเฉลี่ยเวลาที่ใช้แต่ละคอลัมน์',
+ 'Average time spent' => 'ค่าเฉลี่ยเวลาที่ใช้',
+ 'This chart show the average time spent into each column for the last %d tasks.' => 'แผนภูมิแสดงค่าเฉลี่ยเวลาที่ใช้แต่ละคอลัมน์สำหรับ %d งานล่าสุด',
+ 'Average Lead and Cycle time' => 'ค่าเฉลี่ยเวลานำและรอบเวลา',
+ 'Average lead time: ' => 'ค่าเฉลี่ยเวลานำ: ',
+ 'Average cycle time: ' => 'ค่าเฉลี่ยรอบเวลา: ',
+ 'Cycle Time' => 'รอบเวลา',
+ 'Lead Time' => 'เวลานำ',
+ 'This chart show the average lead and cycle time for the last %d tasks over the time.' => 'แผนภูมิแสดงค่าเฉลี่ยเวลานำและรอบเวลาสำหรับ %d งานล่าสุดเมื่อเวลาผ่านไป',
+ 'Average time into each column' => 'ค่าเฉลี่ยเวลาแต่ละคอลัมน์',
+ 'Lead and cycle time' => 'เวลานำและรอบเวลา',
+ 'Lead time: ' => 'เวลานำ: ',
+ 'Cycle time: ' => 'รอบเวลา: ',
+ 'Time spent into each column' => 'เวลาที่ใช้แต่ละคอลัมน์',
+ 'The lead time is the duration between the task creation and the completion.' => 'เวลานำคือระหว่างสร้างงานและจบงาน',
+ 'The cycle time is the duration between the start date and the completion.' => 'รอบเวลาคือระหว่างวันที่เริ่มและจบงาน',
// 'If the task is not closed the current time is used instead of the completion date.' => '',
- 'Set automatically the start date' => 'ตั้งค่าวันที่เริ่มต้นอัตโนมัติ',
- 'Edit Authentication' => 'แก้ไขการตรวจสอบ',
- 'Remote user' => 'ผู้ใช้รีโมท',
+ 'Set automatically the start date' => 'ตั้งค่าวันที่เริ่มต้นอัตโนมัติ',
+ 'Edit Authentication' => 'แก้ไขการตรวจสอบ',
+ 'Remote user' => 'ผู้ใช้รีโมท',
// 'Remote users do not store their password in Kanboard database, examples: LDAP, Google and Github accounts.' => '',
// 'If you check the box "Disallow login form", credentials entered in the login form will be ignored.' => '',
- 'New remote user' => 'เพิ่มผู้ใช้รีโมทใหม่',
- 'New local user' => 'เพิ่มผู้ใช้ท้องถิ่นใหม่',
- 'Default task color' => 'สีเริ่มต้นของงาน',
- 'This feature does not work with all browsers.' => 'คุณลักษณะนี้ไม่สามารถทำงานได้ทุกเบราเซอร์',
+ 'New remote user' => 'เพิ่มผู้ใช้รีโมทใหม่',
+ 'New local user' => 'เพิ่มผู้ใช้ท้องถิ่นใหม่',
+ 'Default task color' => 'สีเริ่มต้นของงาน',
+ 'This feature does not work with all browsers.' => 'คุณลักษณะนี้ไม่สามารถทำงานได้ทุกเบราเซอร์',
// 'There is no destination project available.' => '',
- 'Trigger automatically subtask time tracking' => 'เรียกโดยอัตโนมัติการติดตามเวลางานย่อย',
+ 'Trigger automatically subtask time tracking' => 'เรียกโดยอัตโนมัติการติดตามเวลางานย่อย',
// 'Include closed tasks in the cumulative flow diagram' => '',
- 'Current swimlane: %s' => 'สวิมเลนปัจจุบัน: %s',
- 'Current column: %s' => 'คอลัมน์ปัจจุบัน: %s',
- 'Current category: %s' => 'หมวดปัจจุบัน: %s',
- 'no category' => 'ไม่มีหมวด',
- 'Current assignee: %s' => 'ผู้รับผิดชอบปัจจุบัน: %s',
- 'not assigned' => 'ไม่กำหนด',
- 'Author:' => 'ผู้แต่ง:',
- 'contributors' => 'ผู้ให้กำเนิด',
- 'License:' => 'สัญญาอนุญาต:',
- 'License' => 'สัญญาอนุญาต',
- 'Enter the text below' => 'พิมพ์ข้อความด้านล่าง',
- 'Gantt chart for %s' => 'แผนภูมิแกรนท์สำหรับ %s',
- '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 - โครนนอร์เวย์',
- 'Show this column' => 'แสดงคอลัมนี้',
- 'Hide this column' => 'ซ่อนคอลัมน์นี้',
- 'open file' => 'เปิดไฟล์',
- 'End date' => 'วันจบ',
- 'Users overview' => 'ภาพรวมผู้ใช้',
- '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' => 'แผนภูมิแกรน์ของโปรเจค',
- 'Link type' => 'ประเภทลิงค์',
- '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' => 'ปลั๊กอิน',
- 'There is no plugin loaded.' => 'ไม่มีปลั๊กอินถูกโหลดไว้',
- 'Set maximum column height' => 'กำหนดความสูงสูงสุดของคอลัมน์',
- 'Remove maximum column height' => 'เอาความสูงสูงสุดของคอลัมน์ออก',
- 'My notifications' => 'การแจ้งเตือนของฉัน',
- 'Custom filters' => 'ตัวกรองกำหนดเอง',
- 'Your custom filter have been created successfully.' => 'ตัวกรองกำหนดเองของคุณสร้างเรียบร้อย',
- 'Unable to create your custom filter.' => 'ไม่สามารถสร้างตัวกรองกำหนดเอง',
- 'Custom filter removed successfully.' => 'ลบตัวกรองกำหนดเองเรียบร้อย',
- 'Unable to remove this custom filter.' => 'ไม่สามารถลบตัวกรองกำหนดเอง',
- 'Edit custom filter' => 'แก้ไขตัวกรองกำหนดเอง',
- 'Your custom filter have been updated successfully.' => 'ตัวกรองกำหนดเองของคุณแก้ไขเรียบร้อย',
- 'Unable to update custom filter.' => 'ไม่สามารถแก้ไขตัวกรองกำหนดเอง',
- 'Web' => 'เวบ',
- 'New attachment on task #%d: %s' => 'แนบใหม่ของงาน #%d: %s',
- 'New comment on task #%d' => 'ความคิดเห็นใหม่ของงาน #%d',
- 'Comment updated on task #%d' => 'แก้ไขความคิดเห็นของงาน #%d',
- 'New subtask on task #%d' => 'งานย่อยใหม่ของงาน #%d',
- 'Subtask updated on task #%d' => 'แก้ไขงานย่อยของงาน #%d',
- 'New task #%d: %s' => 'งานใหม่ #%d: %s',
- 'Task updated #%d' => 'แก้ไขงาน #%d',
- 'Task #%d closed' => 'ปิดงาน #%d',
- 'Task #%d opened' => 'เปิดงาน #%d',
- 'Column changed for task #%d' => 'เปลี่ยนคอลัมน์สำหรับงาน #%d',
- 'New position for task #%d' => 'ตำแหน่งใหม่ของงาน #%d',
- 'Swimlane changed for task #%d' => 'เปลี่ยนสวิมเลนสำหรับงาน #%d',
- 'Assignee changed on task #%d' => 'เปลี่ยนผู้รับผิดชอบงาน #%d',
- '%d overdue tasks' => '%d งานเกินกำหนด',
- 'Task #%d is overdue' => 'งาน #%d เกินกำหนด',
- 'No new notifications.' => 'ไม่มีการแจ้งเตือนใหม่',
- 'Mark all as read' => 'มาร์คทั้งหมดว่าอ่านแล้ว',
- 'Mark as read' => 'มาร์คว่าอ่านแล้ว',
+ 'Current swimlane: %s' => 'สวิมเลนปัจจุบัน: %s',
+ 'Current column: %s' => 'คอลัมน์ปัจจุบัน: %s',
+ 'Current category: %s' => 'หมวดปัจจุบัน: %s',
+ 'no category' => 'ไม่มีหมวด',
+ 'Current assignee: %s' => 'ผู้รับผิดชอบปัจจุบัน: %s',
+ 'not assigned' => 'ไม่กำหนด',
+ 'Author:' => 'ผู้แต่ง:',
+ 'contributors' => 'ผู้ให้กำเนิด',
+ 'License:' => 'สัญญาอนุญาต:',
+ 'License' => 'สัญญาอนุญาต',
+ 'Enter the text below' => 'พิมพ์ข้อความด้านล่าง',
+ 'Gantt chart for %s' => 'แผนภูมิแกรนท์สำหรับ %s',
+ '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 - โครนนอร์เวย์',
+ 'Show this column' => 'แสดงคอลัมนี้',
+ 'Hide this column' => 'ซ่อนคอลัมน์นี้',
+ 'open file' => 'เปิดไฟล์',
+ 'End date' => 'วันจบ',
+ 'Users overview' => 'ภาพรวมผู้ใช้',
+ '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' => 'แผนภูมิแกรน์ของโปรเจค',
+ 'Link type' => 'ประเภทลิงค์',
+ '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' => 'ปลั๊กอิน',
+ 'There is no plugin loaded.' => 'ไม่มีปลั๊กอินถูกโหลดไว้',
+ 'Set maximum column height' => 'กำหนดความสูงสูงสุดของคอลัมน์',
+ 'Remove maximum column height' => 'เอาความสูงสูงสุดของคอลัมน์ออก',
+ 'My notifications' => 'การแจ้งเตือนของฉัน',
+ 'Custom filters' => 'ตัวกรองกำหนดเอง',
+ 'Your custom filter have been created successfully.' => 'ตัวกรองกำหนดเองของคุณสร้างเรียบร้อย',
+ 'Unable to create your custom filter.' => 'ไม่สามารถสร้างตัวกรองกำหนดเอง',
+ 'Custom filter removed successfully.' => 'ลบตัวกรองกำหนดเองเรียบร้อย',
+ 'Unable to remove this custom filter.' => 'ไม่สามารถลบตัวกรองกำหนดเอง',
+ 'Edit custom filter' => 'แก้ไขตัวกรองกำหนดเอง',
+ 'Your custom filter have been updated successfully.' => 'ตัวกรองกำหนดเองของคุณแก้ไขเรียบร้อย',
+ 'Unable to update custom filter.' => 'ไม่สามารถแก้ไขตัวกรองกำหนดเอง',
+ 'Web' => 'เวบ',
+ 'New attachment on task #%d: %s' => 'แนบใหม่ของงาน #%d: %s',
+ 'New comment on task #%d' => 'ความคิดเห็นใหม่ของงาน #%d',
+ 'Comment updated on task #%d' => 'แก้ไขความคิดเห็นของงาน #%d',
+ 'New subtask on task #%d' => 'งานย่อยใหม่ของงาน #%d',
+ 'Subtask updated on task #%d' => 'แก้ไขงานย่อยของงาน #%d',
+ 'New task #%d: %s' => 'งานใหม่ #%d: %s',
+ 'Task updated #%d' => 'แก้ไขงาน #%d',
+ 'Task #%d closed' => 'ปิดงาน #%d',
+ 'Task #%d opened' => 'เปิดงาน #%d',
+ 'Column changed for task #%d' => 'เปลี่ยนคอลัมน์สำหรับงาน #%d',
+ 'New position for task #%d' => 'ตำแหน่งใหม่ของงาน #%d',
+ 'Swimlane changed for task #%d' => 'เปลี่ยนสวิมเลนสำหรับงาน #%d',
+ 'Assignee changed on task #%d' => 'เปลี่ยนผู้รับผิดชอบงาน #%d',
+ '%d overdue tasks' => '%d งานเกินกำหนด',
+ 'Task #%d is overdue' => 'งาน #%d เกินกำหนด',
+ 'No new notifications.' => 'ไม่มีการแจ้งเตือนใหม่',
+ 'Mark all as read' => 'มาร์คทั้งหมดว่าอ่านแล้ว',
+ 'Mark as read' => 'มาร์คว่าอ่านแล้ว',
// 'Total number of tasks in this column across all swimlanes' => '',
- 'Collapse swimlane' => 'ย่อสวิมเลน',
- 'Expand swimlane' => 'ขยายสวิมเลน',
- 'Add a new filter' => 'เพิ่มตัวกรองใหม่',
- 'Share with all project members' => 'แชร์ให้สมาชิกทุกคนของโปรเจค',
- 'Shared' => 'แชร์',
- 'Owner' => 'เจ้าของ',
- 'Unread notifications' => 'การแจ้งเตือนยังไม่ได้อ่าน',
- 'My filters' => 'ตัวกรองของฉัน',
- 'Notification methods:' => 'ลักษณะการแจ้งเตือน:',
- 'Import tasks from CSV file' => 'นำเข้างานจากไฟล์ CSV',
- 'Unable to read your file' => 'ไม่สามารถอ่านไฟล์ของคุณ',
- '%d task(s) have been imported successfully.' => '%d งานนำเข้าเรียบร้อย',
- 'Nothing have been imported!' => 'ไม่มีอะไรถูกนำเข้า',
- 'Import users from CSV file' => 'นำเข้าผู้ใช้จากไฟล์ CSV',
- '%d user(s) have been imported successfully.' => '%d ผู้ใช้นำเข้าเรียบร้อย',
- 'Comma' => ', - Comma',
- 'Semi-colon' => '; - Semi-colon',
- 'Tab' => 'Tab - Tab',
- 'Vertical bar' => '| - Vertical bar',
- 'Double Quote' => '" " - Double Quote',
- 'Single Quote' => '\' \' - Single Quote',
- '%s attached a file to the task #%d' => '%s แนบไฟล์ในงาน #%d',
- 'There is no column or swimlane activated in your project!' => 'ไม่มีคอลัมน์หรือสวิมเลนเปิดใช้งานในโปรเจคของคุณ!',
+ 'Collapse swimlane' => 'ย่อสวิมเลน',
+ 'Expand swimlane' => 'ขยายสวิมเลน',
+ 'Add a new filter' => 'เพิ่มตัวกรองใหม่',
+ 'Share with all project members' => 'แชร์ให้สมาชิกทุกคนของโปรเจค',
+ 'Shared' => 'แชร์',
+ 'Owner' => 'เจ้าของ',
+ 'Unread notifications' => 'การแจ้งเตือนยังไม่ได้อ่าน',
+ 'My filters' => 'ตัวกรองของฉัน',
+ 'Notification methods:' => 'ลักษณะการแจ้งเตือน:',
+ 'Import tasks from CSV file' => 'นำเข้างานจากไฟล์ CSV',
+ 'Unable to read your file' => 'ไม่สามารถอ่านไฟล์ของคุณ',
+ '%d task(s) have been imported successfully.' => '%d งานนำเข้าเรียบร้อย',
+ 'Nothing have been imported!' => 'ไม่มีอะไรถูกนำเข้า',
+ 'Import users from CSV file' => 'นำเข้าผู้ใช้จากไฟล์ CSV',
+ '%d user(s) have been imported successfully.' => '%d ผู้ใช้นำเข้าเรียบร้อย',
+ 'Comma' => ', - Comma',
+ 'Semi-colon' => '; - Semi-colon',
+ 'Tab' => 'Tab - Tab',
+ 'Vertical bar' => '| - Vertical bar',
+ 'Double Quote' => '" " - Double Quote',
+ 'Single Quote' => '\' \' - Single Quote',
+ '%s attached a file to the task #%d' => '%s แนบไฟล์ในงาน #%d',
+ 'There is no column or swimlane activated in your project!' => 'ไม่มีคอลัมน์หรือสวิมเลนเปิดใช้งานในโปรเจคของคุณ!',
// 'Append filter (instead of replacement)' => '',
- 'Append/Replace' => 'เพิ่มเติม/แทนที่',
- 'Append' => 'เพิ่มเติม',
- 'Replace' => 'แทนที่',
- 'Import' => 'นำเข้า',
- 'change sorting' => 'เปลี่ยนการเรียง',
- 'Tasks Importation' => 'การนำเข้างาน',
- 'Delimiter' => 'คั่น',
- 'Enclosure' => 'กำหนดข้อความ',
- 'CSV File' => 'ไฟล์ CSV',
- 'Instructions' => 'คำสั่ง',
- 'Your file must use the predefined CSV format' => 'ไฟล์ของคุณจะต้องใช้รูปแบบ CSV ที่กำหนดไว้ล่วงหน้า',
- 'Your file must be encoded in UTF-8' => 'ไฟล์ของคุณต้องเอนโค้ดด้วย UTF-8',
- 'The first row must be the header' => 'แถวแรกต้องเป็นหัวข้อ',
- 'Duplicates are not verified for you' => 'รายการที่ซ้ำกันจะไม่ได้รับการตรวจสอบสำหรับคุณ',
- 'The due date must use the ISO format: YYYY-MM-DD' => 'วันที่ต้องอยู่ในรูปแบบ ISO: YYYY-MM-DD',
- 'Download CSV template' => 'ดาวน์โหลด CSV ต้นฉบับ',
- 'No external integration registered.' => 'ไม่มีการรวมภายนอกถูกลงทะเบียนไว้',
- 'Duplicates are not imported' => 'ซ้ำกันไม่สามารถนำเข้าได้',
- 'Usernames must be lowercase and unique' => 'ชื่อผู้ใช้ต้องเป็นตัวพิมพ์เล็กและไม่ซ้ำ',
+ 'Append/Replace' => 'เพิ่มเติม/แทนที่',
+ 'Append' => 'เพิ่มเติม',
+ 'Replace' => 'แทนที่',
+ 'Import' => 'นำเข้า',
+ 'change sorting' => 'เปลี่ยนการเรียง',
+ 'Tasks Importation' => 'การนำเข้างาน',
+ 'Delimiter' => 'คั่น',
+ 'Enclosure' => 'กำหนดข้อความ',
+ 'CSV File' => 'ไฟล์ CSV',
+ 'Instructions' => 'คำสั่ง',
+ 'Your file must use the predefined CSV format' => 'ไฟล์ของคุณจะต้องใช้รูปแบบ CSV ที่กำหนดไว้ล่วงหน้า',
+ 'Your file must be encoded in UTF-8' => 'ไฟล์ของคุณต้องเอนโค้ดด้วย UTF-8',
+ 'The first row must be the header' => 'แถวแรกต้องเป็นหัวข้อ',
+ 'Duplicates are not verified for you' => 'รายการที่ซ้ำกันจะไม่ได้รับการตรวจสอบสำหรับคุณ',
+ 'The due date must use the ISO format: YYYY-MM-DD' => 'วันที่ต้องอยู่ในรูปแบบ ISO: YYYY-MM-DD',
+ 'Download CSV template' => 'ดาวน์โหลด CSV ต้นฉบับ',
+ 'No external integration registered.' => 'ไม่มีการรวมภายนอกถูกลงทะเบียนไว้',
+ 'Duplicates are not imported' => 'ซ้ำกันไม่สามารถนำเข้าได้',
+ 'Usernames must be lowercase and unique' => 'ชื่อผู้ใช้ต้องเป็นตัวพิมพ์เล็กและไม่ซ้ำ',
// 'Passwords will be encrypted if present' => '',
- '%s attached a new file to the task %s' => '%s แนบไฟล์ใหม่ในงาน %s',
- 'Assign automatically a category based on a link' => 'กำหนดหมวดอัตโนมัติตามลิงค์',
+ '%s attached a new file to the task %s' => '%s แนบไฟล์ใหม่ในงาน %s',
+ 'Assign automatically a category based on a link' => 'กำหนดหมวดอัตโนมัติตามลิงค์',
// 'BAM - Konvertible Mark' => '',
'Assignee Username' => 'กำหนดชื่อผู้ใช้',
- 'Assignee Name' => 'กำหนดชื่อ',
- 'Groups' => 'กลุ่ม',
- 'Members of %s' => 'สมาชิกของ %s',
- 'New group' => 'กลุ่มใหม่',
- 'Group created successfully.' => 'สร้างกลุ่มสำเร็จ',
- 'Unable to create your group.' => 'ไม่สามารถสร้างกลุ่มของคุณ',
- 'Edit group' => 'แก้ไขกลุ่ม',
- 'Group updated successfully.' => 'แก้ไขกลุ่มเรียบร้อย',
- 'Unable to update your group.' => 'ไม่สามารถแก้ไขกลุ่มของคุณ',
- 'Add group member to "%s"' => 'เพิ่มสมาชิกในกลุ่ม %s',
- 'Group member added successfully.' => 'เพิ่มสมาชิกกลุ่มเรียบร้อย',
- 'Unable to add group member.' => 'ไม่สามารถเพิ่มสมาชิกกลุ่ม',
- 'Remove user from group "%s"' => 'เอาผู้ใช้ออกจากกลุ่ม %s',
- 'User removed successfully from this group.' => 'เอาผู้ใช้ออกจากกลุ่มนี้เรียบร้อย',
- 'Unable to remove this user from the group.' => 'ไม่สามารถลบผู้ใช้ออกจากกลุ่มนี้',
- 'Remove group' => 'ลบกลุ่ม',
- 'Group removed successfully.' => 'ลบกลุ่มเรียบร้อย',
- 'Unable to remove this group.' => 'ไม่สามารถลบกลุ่มนี้',
- 'Project Permissions' => 'การอนุญาตใช้งานโปรเจค',
- 'Manager' => 'ผู้จัดการ',
- 'Project Manager' => 'ผู้จัดการโปรเจค',
- 'Project Member' => 'สมาชิกโปรเจค',
- 'Project Viewer' => 'ผู้ดูโปรเจค',
- 'Your account is locked for %d minutes' => 'บัญชีของคุณถูกล็อก %d นาที',
- 'Invalid captcha' => 'captcha ไม่ถูกต้อง',
- 'The name must be unique' => 'ชื่อต้องไม่ซ้ำ',
- 'View all groups' => 'แสดงกลุ่มทั้งหมด',
- 'View group members' => 'แสดงสมาชิกกลุ่ม',
+ 'Assignee Name' => 'กำหนดชื่อ',
+ 'Groups' => 'กลุ่ม',
+ 'Members of %s' => 'สมาชิกของ %s',
+ 'New group' => 'กลุ่มใหม่',
+ 'Group created successfully.' => 'สร้างกลุ่มสำเร็จ',
+ 'Unable to create your group.' => 'ไม่สามารถสร้างกลุ่มของคุณ',
+ 'Edit group' => 'แก้ไขกลุ่ม',
+ 'Group updated successfully.' => 'แก้ไขกลุ่มเรียบร้อย',
+ 'Unable to update your group.' => 'ไม่สามารถแก้ไขกลุ่มของคุณ',
+ 'Add group member to "%s"' => 'เพิ่มสมาชิกในกลุ่ม %s',
+ 'Group member added successfully.' => 'เพิ่มสมาชิกกลุ่มเรียบร้อย',
+ 'Unable to add group member.' => 'ไม่สามารถเพิ่มสมาชิกกลุ่ม',
+ 'Remove user from group "%s"' => 'เอาผู้ใช้ออกจากกลุ่ม %s',
+ 'User removed successfully from this group.' => 'เอาผู้ใช้ออกจากกลุ่มนี้เรียบร้อย',
+ 'Unable to remove this user from the group.' => 'ไม่สามารถลบผู้ใช้ออกจากกลุ่มนี้',
+ 'Remove group' => 'ลบกลุ่ม',
+ 'Group removed successfully.' => 'ลบกลุ่มเรียบร้อย',
+ 'Unable to remove this group.' => 'ไม่สามารถลบกลุ่มนี้',
+ 'Project Permissions' => 'การอนุญาตใช้งานโปรเจค',
+ 'Manager' => 'ผู้จัดการ',
+ 'Project Manager' => 'ผู้จัดการโปรเจค',
+ 'Project Member' => 'สมาชิกโปรเจค',
+ 'Project Viewer' => 'ผู้ดูโปรเจค',
+ 'Your account is locked for %d minutes' => 'บัญชีของคุณถูกล็อก %d นาที',
+ 'Invalid captcha' => 'captcha ไม่ถูกต้อง',
+ 'The name must be unique' => 'ชื่อต้องไม่ซ้ำ',
+ 'View all groups' => 'แสดงกลุ่มทั้งหมด',
+ 'View group members' => 'แสดงสมาชิกกลุ่ม',
// 'There is no user available.' => '',
- 'Do you really want to remove the user "%s" from the group "%s"?' => 'คุณต้องการลบผู้ใช้ "%s" ออกจากกลุ่ม "%s"?',
- 'There is no group.' => 'ไม่มีกลุ่ม',
- 'External Id' => 'ไอดีภายนอก',
- 'Add group member' => 'เพิ่มสมาชิกกลุ่ม',
- 'Do you really want to remove this group: "%s"?' => 'คุณต้องการลบกลุ่มนี้: "%s"?',
- 'There is no user in this group.' => 'ไม่มีผู้ใช้ในกลุ่มนี้',
- 'Remove this user' => 'เอาผู้ใช้คนนี้ออก',
- 'Permissions' => 'การอนุญาตใช้งาน',
- 'Allowed Users' => 'การอนุญาตผู้ใช้',
- 'No user have been allowed specifically.' => 'ไม่มีผู้ใช้ได้รับอนุญาติเป็นพิเศษ',
- 'Role' => 'บทบาท',
- 'Enter user name...' => 'พิมพ์ชื่อผู้ใช้...',
- 'Allowed Groups' => 'อนุญาตกลุ่ม',
- 'No group have been allowed specifically.' => 'ไม่มีกลุ่มได้รับอนุญาติเป็นพิเศษ',
- 'Group' => 'กลุ่ม',
- 'Group Name' => 'ชื่อกลุ่ม',
- 'Enter group name...' => 'พิมพ์ชื่อกลุ่ม...',
- 'Role:' => 'บทบาท:',
- 'Project members' => 'สมาชิกโปรเจค',
- 'Compare hours for "%s"' => 'เปรียบเทียบรายชั่วโมงสำหรับ %s',
- '%s mentioned you in the task #%d' => '%s กล่าวถึงคุณในงาน #%d',
- '%s mentioned you in a comment on the task #%d' => '%s กล่าวถึงคุณในความคิดเห็นของงาน #%d',
- 'You were mentioned in the task #%d' => 'คุณได้รับการกล่าวถึงในงาน #%d',
- 'You were mentioned in a comment on the task #%d' => 'คุณได้รับการกล่าวถึงในความคิดเห็นของงาน #%d',
+ 'Do you really want to remove the user "%s" from the group "%s"?' => 'คุณต้องการลบผู้ใช้ "%s" ออกจากกลุ่ม "%s"?',
+ 'There is no group.' => 'ไม่มีกลุ่ม',
+ 'External Id' => 'ไอดีภายนอก',
+ 'Add group member' => 'เพิ่มสมาชิกกลุ่ม',
+ 'Do you really want to remove this group: "%s"?' => 'คุณต้องการลบกลุ่มนี้: "%s"?',
+ 'There is no user in this group.' => 'ไม่มีผู้ใช้ในกลุ่มนี้',
+ 'Remove this user' => 'เอาผู้ใช้คนนี้ออก',
+ 'Permissions' => 'การอนุญาตใช้งาน',
+ 'Allowed Users' => 'การอนุญาตผู้ใช้',
+ 'No user have been allowed specifically.' => 'ไม่มีผู้ใช้ได้รับอนุญาติเป็นพิเศษ',
+ 'Role' => 'บทบาท',
+ 'Enter user name...' => 'พิมพ์ชื่อผู้ใช้...',
+ 'Allowed Groups' => 'อนุญาตกลุ่ม',
+ 'No group have been allowed specifically.' => 'ไม่มีกลุ่มได้รับอนุญาติเป็นพิเศษ',
+ 'Group' => 'กลุ่ม',
+ 'Group Name' => 'ชื่อกลุ่ม',
+ 'Enter group name...' => 'พิมพ์ชื่อกลุ่ม...',
+ 'Role:' => 'บทบาท:',
+ 'Project members' => 'สมาชิกโปรเจค',
+ 'Compare hours for "%s"' => 'เปรียบเทียบรายชั่วโมงสำหรับ %s',
+ '%s mentioned you in the task #%d' => '%s กล่าวถึงคุณในงาน #%d',
+ '%s mentioned you in a comment on the task #%d' => '%s กล่าวถึงคุณในความคิดเห็นของงาน #%d',
+ 'You were mentioned in the task #%d' => 'คุณได้รับการกล่าวถึงในงาน #%d',
+ 'You were mentioned in a comment on the task #%d' => 'คุณได้รับการกล่าวถึงในความคิดเห็นของงาน #%d',
'Mentioned' => 'กล่าวถึง',
- 'Compare Estimated Time vs Actual Time' => 'เปรียบเทียบเวลาโดยประมาณกับเวลาที่เกิดขึ้นจริง',
- 'Estimated hours: ' => 'เวลาโดยประมาณ:',
- 'Actual hours: ' => 'เวลาที่เกิดขึ้นจริง:',
- 'Hours Spent' => 'เวลาที่ใช้',
- 'Hours Estimated' => 'เวลาโดยประมาณ',
- 'Estimated Time' => 'เวลาโดยประมาณ',
- 'Actual Time' => 'เวลาที่ใช้',
- 'Estimated vs actual time' => 'เวลาโดยประมาณกับเวลาจริง',
- 'RUB - Russian Ruble' => 'RUB - รูเบิลรัสเซีย',
- 'Assign the task to the person who does the action when the column is changed' => 'กำหนดผู้รับผิดชอบงานเมื่อเปลี่ยนคอลัมน์',
- 'Close a task in a specific column' => 'ปิดงานในคอลัมน์ที่เฉพาะเจาะจง',
+ 'Compare Estimated Time vs Actual Time' => 'เปรียบเทียบเวลาโดยประมาณกับเวลาที่เกิดขึ้นจริง',
+ 'Estimated hours: ' => 'เวลาโดยประมาณ:',
+ 'Actual hours: ' => 'เวลาที่เกิดขึ้นจริง:',
+ 'Hours Spent' => 'เวลาที่ใช้',
+ 'Hours Estimated' => 'เวลาโดยประมาณ',
+ 'Estimated Time' => 'เวลาโดยประมาณ',
+ 'Actual Time' => 'เวลาที่ใช้',
+ 'Estimated vs actual time' => 'เวลาโดยประมาณกับเวลาจริง',
+ 'RUB - Russian Ruble' => 'RUB - รูเบิลรัสเซีย',
+ 'Assign the task to the person who does the action when the column is changed' => 'กำหนดผู้รับผิดชอบงานเมื่อเปลี่ยนคอลัมน์',
+ 'Close a task in a specific column' => 'ปิดงานในคอลัมน์ที่เฉพาะเจาะจง',
// 'Time-based One-time Password Algorithm' => '',
// 'Two-Factor Provider: ' => '',
// 'Disable two-factor authentication' => '',
// 'Enable two-factor authentication' => '',
// 'There is no integration registered at the moment.' => '',
- 'Password Reset for Kanboard' => 'รีเซตรหัสผ่านสำหรับคังบอร์ด',
- 'Forgot password?' => 'ลืมรหัสผ่าน?',
- 'Enable "Forget Password"' => 'เปิดการใช้งาน "ลืมรหัสผ่าน"',
- 'Password Reset' => 'รีเซตรหัสผ่าน',
- 'New password' => 'รหัสผ่านใหม่',
- 'Change Password' => 'เปลี่ยนรหัสผ่าน',
- 'To reset your password click on this link:' => 'ในการรีเซตรหัสผ่านของคุณคลิ๊กที่ลิงค์นี้:',
- 'Last Password Reset' => 'รีเซตรหัสผ่านครั้งล่าสุด',
- 'The password has never been reinitialized.' => 'รหัสผ่านไม่เคยเริ่มใหม่อีกครั้ง',
- 'Creation' => 'สร้าง',
- 'Expiration' => 'สิ้นสุด',
- 'Password reset history' => 'ประวัติการรีเซตรหัสผ่าน',
- 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => 'ทุกงานของคอลัมน์ "%s" และสวิมเลน "%s" ถูกปิดเรียบร้อย',
+ 'Password Reset for Kanboard' => 'รีเซตรหัสผ่านสำหรับคังบอร์ด',
+ 'Forgot password?' => 'ลืมรหัสผ่าน?',
+ 'Enable "Forget Password"' => 'เปิดการใช้งาน "ลืมรหัสผ่าน"',
+ 'Password Reset' => 'รีเซตรหัสผ่าน',
+ 'New password' => 'รหัสผ่านใหม่',
+ 'Change Password' => 'เปลี่ยนรหัสผ่าน',
+ 'To reset your password click on this link:' => 'ในการรีเซตรหัสผ่านของคุณคลิ๊กที่ลิงค์นี้:',
+ 'Last Password Reset' => 'รีเซตรหัสผ่านครั้งล่าสุด',
+ 'The password has never been reinitialized.' => 'รหัสผ่านไม่เคยเริ่มใหม่อีกครั้ง',
+ 'Creation' => 'สร้าง',
+ 'Expiration' => 'สิ้นสุด',
+ 'Password reset history' => 'ประวัติการรีเซตรหัสผ่าน',
+ 'All tasks of the column "%s" and the swimlane "%s" have been closed successfully.' => 'ทุกงานของคอลัมน์ "%s" และสวิมเลน "%s" ถูกปิดเรียบร้อย',
'Do you really want to close all tasks of this column?' => 'คุณต้องการปิดทุกงานในคอลัมนี้ใช่หรือไม่?',
- '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '%d งานในคอลัมน์ "%s" และสวิมเลน "%s" จะปิด',
- 'Close all tasks of this column' => 'ปิดทุกงานในคอลัมน์นี้',
- 'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'ปลั๊กอินไม่ได้ลงทะเบียนการแจ้งเตือนในโปรเจค คุณยังสามารถกำหนดค่าการแจ้งเตือนรายบุคคลในโปรไฟล์ผู้ใช้ของคุณ',
- 'My dashboard' => 'แดชบอร์ดของฉํน',
- 'My profile' => 'โปรเจคของฉัน',
- 'Project owner: ' => 'เจ้าของโปรเจค: ',
- 'The project identifier is optional and must be alphanumeric, example: MYPROJECT.' => 'ตัวบ่งชี้โปรโจคเป็นตัวเลือกเสริมและต้องเป็นตัวอักษรหรือตัวเลข ตัวอย่าง: MYPROJECT',
- 'Project owner' => 'เจ้าของโปรเจค',
- 'Those dates are useful for the project Gantt chart.' => 'วันที่ใช้สำหรับแผนภูมิแกรนท์ของโปรเจค',
- 'Private projects do not have users and groups management.' => 'โปรเจคส่วนตัวไม่มีการจัดการผู้ใช้และกลุ่ม',
- 'There is no project member.' => 'ไม่มีสมาชิกโปรเจค',
- 'Priority' => 'ความสำคัญ',
- 'Task priority' => 'ความสำคัญของงาน',
- 'General' => 'ทั่วไป',
- 'Dates' => 'วันที่',
- 'Default priority' => 'ความสำคัญเริ่มต้น',
- 'Lowest priority' => 'ความสำคัญต่ำสุด',
- 'Highest priority' => 'ความสำคัญสูงสุด',
- 'If you put zero to the low and high priority, this feature will be disabled.' => 'ถ้าคุณใส่เลขศูนย์ทั้งความสำคัญต่ำและความสำคัญสูง จะเป็นการปิดการทำงานคุณลักษณะนี้',
- 'Close a task when there is no activity' => 'ปิดงานเมื่อไม่มีกิจกกรมเกิดขึ้น',
- 'Duration in days' => 'ระยะเวลาวันที่',
- 'Send email when there is no activity on a task' => 'ส่งอีเมลเมื่อไม่มีกิจกรรมเกิดขึ้นในงาน',
- 'List of external links' => 'รายการเชื่อมโยงภายนอก',
- 'Unable to fetch link information.' => 'ไม่สามารถดึงข้อมูลการเชื่อมโยง',
+ '%d task(s) in the column "%s" and the swimlane "%s" will be closed.' => '%d งานในคอลัมน์ "%s" และสวิมเลน "%s" จะปิด',
+ 'Close all tasks of this column' => 'ปิดทุกงานในคอลัมน์นี้',
+ 'No plugin has registered a project notification method. You can still configure individual notifications in your user profile.' => 'ปลั๊กอินไม่ได้ลงทะเบียนการแจ้งเตือนในโปรเจค คุณยังสามารถกำหนดค่าการแจ้งเตือนรายบุคคลในโปรไฟล์ผู้ใช้ของคุณ',
+ 'My dashboard' => 'แดชบอร์ดของฉํน',
+ 'My profile' => 'โปรเจคของฉัน',
+ 'Project owner: ' => 'เจ้าของโปรเจค: ',
+ 'The project identifier is optional and must be alphanumeric, example: MYPROJECT.' => 'ตัวบ่งชี้โปรโจคเป็นตัวเลือกเสริมและต้องเป็นตัวอักษรหรือตัวเลข ตัวอย่าง: MYPROJECT',
+ 'Project owner' => 'เจ้าของโปรเจค',
+ 'Those dates are useful for the project Gantt chart.' => 'วันที่ใช้สำหรับแผนภูมิแกรนท์ของโปรเจค',
+ 'Private projects do not have users and groups management.' => 'โปรเจคส่วนตัวไม่มีการจัดการผู้ใช้และกลุ่ม',
+ 'There is no project member.' => 'ไม่มีสมาชิกโปรเจค',
+ 'Priority' => 'ความสำคัญ',
+ 'Task priority' => 'ความสำคัญของงาน',
+ 'General' => 'ทั่วไป',
+ 'Dates' => 'วันที่',
+ 'Default priority' => 'ความสำคัญเริ่มต้น',
+ 'Lowest priority' => 'ความสำคัญต่ำสุด',
+ 'Highest priority' => 'ความสำคัญสูงสุด',
+ 'If you put zero to the low and high priority, this feature will be disabled.' => 'ถ้าคุณใส่เลขศูนย์ทั้งความสำคัญต่ำและความสำคัญสูง จะเป็นการปิดการทำงานคุณลักษณะนี้',
+ 'Close a task when there is no activity' => 'ปิดงานเมื่อไม่มีกิจกกรมเกิดขึ้น',
+ 'Duration in days' => 'ระยะเวลาวันที่',
+ 'Send email when there is no activity on a task' => 'ส่งอีเมลเมื่อไม่มีกิจกรรมเกิดขึ้นในงาน',
+ 'List of external links' => 'รายการเชื่อมโยงภายนอก',
+ 'Unable to fetch link information.' => 'ไม่สามารถดึงข้อมูลการเชื่อมโยง',
// 'Daily background job for tasks' => '',
- 'Auto' => 'อัตโนมัติ',
- 'Related' => 'ที่เกี่ยวข้อง',
- 'Attachment' => 'แนบ',
- 'Title not found' => 'ไม่พบหัวเรื่อง',
- 'Web Link' => 'เวบลิงค์',
- 'External links' => 'เชื่อมโยงภายนอก',
- 'Add external link' => 'เพิ่มการเชื่อมโยงภายนอก',
- 'Type' => 'ประเภท',
- 'Dependency' => 'ขึ้นอยู่กับ',
- 'Add internal link' => 'เพิ่มการเชื่อมโยงภายใน',
- 'Add a new external link' => 'เพิ่มการเชื่อมโยงภายนอกใหม่',
- 'Edit external link' => 'แก้ไขการเชื่อมโยงภายนอก',
- 'External link' => 'เชื่อมโยงภายนอก',
- 'Copy and paste your link here...' => 'คัดลอกและวางลิงค์ของคุณที่นี้...',
- 'URL' => 'URL',
- 'There is no external link for the moment.' => 'ขณะนี้ไม่มีการเชื่อมโยงภายนอก',
- 'Internal links' => 'เชื่อมโยงภายใน',
- 'There is no internal link for the moment.' => 'ขณะนี้ไม่มีการเชื่อมโยงภายใน',
- 'Assign to me' => 'ฉันรับผิดชอบ',
- 'Me' => 'ฉัน',
+ 'Auto' => 'อัตโนมัติ',
+ 'Related' => 'ที่เกี่ยวข้อง',
+ 'Attachment' => 'แนบ',
+ 'Title not found' => 'ไม่พบหัวเรื่อง',
+ 'Web Link' => 'เวบลิงค์',
+ 'External links' => 'เชื่อมโยงภายนอก',
+ 'Add external link' => 'เพิ่มการเชื่อมโยงภายนอก',
+ 'Type' => 'ประเภท',
+ 'Dependency' => 'ขึ้นอยู่กับ',
+ 'Add internal link' => 'เพิ่มการเชื่อมโยงภายใน',
+ 'Add a new external link' => 'เพิ่มการเชื่อมโยงภายนอกใหม่',
+ 'Edit external link' => 'แก้ไขการเชื่อมโยงภายนอก',
+ 'External link' => 'เชื่อมโยงภายนอก',
+ 'Copy and paste your link here...' => 'คัดลอกและวางลิงค์ของคุณที่นี้...',
+ 'URL' => 'URL',
+ 'There is no external link for the moment.' => 'ขณะนี้ไม่มีการเชื่อมโยงภายนอก',
+ 'Internal links' => 'เชื่อมโยงภายใน',
+ 'There is no internal link for the moment.' => 'ขณะนี้ไม่มีการเชื่อมโยงภายใน',
+ 'Assign to me' => 'ฉันรับผิดชอบ',
+ 'Me' => 'ฉัน',
// 'Do not duplicate anything' => '',
- 'Projects management' => 'การจัดการโปรเจค',
- 'Users management' => 'การจัดการผู้ใช้',
- 'Groups management' => 'การจัดการกลุ่ม',
- 'Create from another project' => 'สร้างโปรเจคอื่น',
- 'There is no subtask at the moment.' => 'ขณะนี้ไม่มีงานย่อย',
- 'open' => 'เปิด',
- 'closed' => 'ปิด',
+ 'Projects management' => 'การจัดการโปรเจค',
+ 'Users management' => 'การจัดการผู้ใช้',
+ 'Groups management' => 'การจัดการกลุ่ม',
+ 'Create from another project' => 'สร้างโปรเจคอื่น',
+ 'There is no subtask at the moment.' => 'ขณะนี้ไม่มีงานย่อย',
+ 'open' => 'เปิด',
+ 'closed' => 'ปิด',
'Priority:' => 'ความสำคัญ:',
- 'Reference:' => 'อ้างถึง:',
- 'Complexity:' => 'ความซับซ้อน:',
- 'Swimlane:' => 'สวิมเลน:',
- 'Column:' => 'คอลัมน์:',
- 'Position:' => 'ตำแหน่ง:',
- 'Creator:' => 'ผู้สร้าง:',
- 'Time estimated:' => 'เวลาเฉลี่ย:',
- '%s hours' => '%s ชั่วโมง',
- 'Time spent:' => 'ใช้เวลา:',
- 'Created:' => 'สร้าง:',
- 'Modified:' => 'แก้ไข:',
- 'Completed:' => 'เสร็จสิ้น:',
- 'Started:' => 'เริ่ม:',
+ 'Reference:' => 'อ้างถึง:',
+ 'Complexity:' => 'ความซับซ้อน:',
+ 'Swimlane:' => 'สวิมเลน:',
+ 'Column:' => 'คอลัมน์:',
+ 'Position:' => 'ตำแหน่ง:',
+ 'Creator:' => 'ผู้สร้าง:',
+ 'Time estimated:' => 'เวลาเฉลี่ย:',
+ '%s hours' => '%s ชั่วโมง',
+ 'Time spent:' => 'ใช้เวลา:',
+ 'Created:' => 'สร้าง:',
+ 'Modified:' => 'แก้ไข:',
+ 'Completed:' => 'เสร็จสิ้น:',
+ 'Started:' => 'เริ่ม:',
'Moved:' => 'ย้าย:',
- 'Task #%d' => 'งานที่ #%d',
- 'Sub-tasks' => 'งานย่อย',
- 'Date and time format' => 'รูปแบบของวันเวลา',
- 'Time format' => 'รูปแบบของเวลา',
- 'Start date: ' => 'เริ่มวันที่:',
- 'End date: ' => 'จบวันที่:',
- 'New due date: ' => 'วันครบกำหนดใหม่',
- 'Start date changed: ' => 'เปลี่ยนวันที่เริ่ม',
+ 'Task #%d' => 'งานที่ #%d',
+ 'Sub-tasks' => 'งานย่อย',
+ 'Date and time format' => 'รูปแบบของวันเวลา',
+ 'Time format' => 'รูปแบบของเวลา',
+ 'Start date: ' => 'เริ่มวันที่:',
+ 'End date: ' => 'จบวันที่:',
+ 'New due date: ' => 'วันครบกำหนดใหม่',
+ 'Start date changed: ' => 'เปลี่ยนวันที่เริ่ม',
+ // 'Disable private projects' => '',
+ // 'Do you really want to remove this custom filter: "%s"?' => '',
+ // 'Remove a custom filter' => '',
+ // 'User activated successfully.' => '',
+ // 'Unable to enable this user.' => '',
+ // 'User disabled successfully.' => '',
+ // 'Unable to disable this user.' => '',
+ // 'All files have been uploaded successfully.' => '',
+ // 'View uploaded files' => '',
+ // 'The maximum allowed file size is %sB.' => '',
+ // 'Choose files again' => '',
+ // 'Drag and drop your files here' => '',
+ // 'choose files' => '',
+ // 'View profile' => '',
+ // 'Two Factor' => '',
+ // 'Disable user' => '',
+ // 'Do you really want to disable this user: "%s"?' => '',
+ // 'Enable user' => '',
+ // 'Do you really want to enable this user: "%s"?' => '',
+ // 'Download' => '',
+ // 'Uploaded: %s' => '',
+ // 'Size: %s' => '',
+ // 'Uploaded by %s' => '',
+ // 'Filename' => '',
+ // 'Size' => '',
+ // 'Column created successfully.' => '',
+ // 'Another column with the same name exists in the project' => '',
+ // 'Default filters' => '',
+ // 'Your board doesn\'t have any column!' => '',
+ // 'Change column position' => '',
+ // 'Switch to the project overview' => '',
+ // 'User filters' => '',
+ // 'Category filters' => '',
+ // 'Upload a file' => '',
+ // 'There is no attachment at the moment.' => '',
+ // 'View file' => '',
+ // 'Last activity' => '',
+ // 'Change subtask position' => '',
+ // 'This value must be greater than %d' => '',
+ // 'Another swimlane with the same name exists in the project' => '',
+ // 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/tr_TR/translations.php b/app/Locale/tr_TR/translations.php
index aa73c1c6..1e376de3 100644
--- a/app/Locale/tr_TR/translations.php
+++ b/app/Locale/tr_TR/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => 'Düzenle',
'remove' => 'sil',
'Remove' => 'Sil',
- 'Update' => 'Güncelle',
'Yes' => 'Evet',
'No' => 'Hayır',
'cancel' => 'İptal',
@@ -60,7 +59,6 @@ return array(
'Actions' => 'İşlemler',
'Inactive' => 'Aktif değil',
'Active' => 'Aktif',
- 'Add this column' => 'Bu sütunu ekle',
'%d tasks on the board' => '%d görev bu tabloda',
'%d tasks in total' => '%d görev toplam',
'Unable to update this board.' => 'Bu tablo güncellenemiyor.',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => 'Bu işlem silinemedi',
'Action removed successfully.' => 'İşlem başarıyla silindi',
'Automatic actions for the project "%s"' => '"%s" projesi için otomatik işlemler',
- 'Defined actions' => 'Tanımlanan işlemler',
'Add an action' => 'İşlem ekle',
'Event name' => 'Durum adı',
'Action name' => 'İşlem adı',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => 'Seçilen durum oluştuğunda ilgili eylemi gerçekleştir.',
'Next step' => 'Sonraki adım',
'Define action parameters' => 'İşlem parametrelerini düzenle',
- 'Save this action' => 'Bu işlemi kaydet',
'Do you really want to remove this action: "%s"?' => 'Bu işlemi silmek istediğinize emin misiniz: "%s"?',
'Remove an automatic action' => 'Bir otomatik işlemi sil',
'Assign the task to a specific user' => 'Görevi bir kullanıcıya ata',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/Locale/zh_CN/translations.php b/app/Locale/zh_CN/translations.php
index 55d5463d..deca1a9b 100644
--- a/app/Locale/zh_CN/translations.php
+++ b/app/Locale/zh_CN/translations.php
@@ -8,7 +8,6 @@ return array(
'Edit' => '编辑',
'remove' => '移除',
'Remove' => '移除',
- 'Update' => '更新',
'Yes' => '是',
'No' => '否',
'cancel' => '取消',
@@ -60,7 +59,6 @@ return array(
'Actions' => '动作',
'Inactive' => '未激活',
'Active' => '激活',
- 'Add this column' => '加入该栏目',
'%d tasks on the board' => '看板目前有%d个任务',
'%d tasks in total' => '总共有%d个任务',
'Unable to update this board.' => '无法更新该看板。',
@@ -184,7 +182,6 @@ return array(
'Unable to remove this action.' => '无法移除该动作',
'Action removed successfully.' => '成功移除动作。',
'Automatic actions for the project "%s"' => '项目"%s"的自动动作',
- 'Defined actions' => '已定义的动作',
'Add an action' => '添加动作',
'Event name' => '事件名称',
'Action name' => '动作名称',
@@ -194,7 +191,6 @@ return array(
'When the selected event occurs execute the corresponding action.' => '当所选事件发生时执行相应动作。',
'Next step' => '下一步',
'Define action parameters' => '定义动作参数',
- 'Save this action' => '保存该动作',
'Do you really want to remove this action: "%s"?' => '确定要移除动作"%s"吗?',
'Remove an automatic action' => '移除一个自动动作',
'Assign the task to a specific user' => '将该任务指派给一个用户',
@@ -1148,4 +1144,11 @@ return array(
// 'This value must be greater than %d' => '',
// 'Another swimlane with the same name exists in the project' => '',
// 'Example: http://example.kanboard.net/ (used to generate absolute URLs)' => '',
+ // 'Actions duplicated successfully.' => '',
+ // 'Unable to duplicate actions.' => '',
+ // 'Add a new action' => '',
+ // 'Import from another project' => '',
+ // 'There is no action at the moment.' => '',
+ // 'Import actions from another project' => '',
+ // 'There is no available project.' => '',
);
diff --git a/app/ServiceProvider/AuthenticationProvider.php b/app/ServiceProvider/AuthenticationProvider.php
index 700fe05b..5ed28fe1 100644
--- a/app/ServiceProvider/AuthenticationProvider.php
+++ b/app/ServiceProvider/AuthenticationProvider.php
@@ -67,6 +67,8 @@ class AuthenticationProvider implements ServiceProviderInterface
$acl->setRoleHierarchy(Role::PROJECT_MEMBER, array(Role::PROJECT_VIEWER));
$acl->add('Action', '*', Role::PROJECT_MANAGER);
+ $acl->add('ActionProject', '*', Role::PROJECT_MANAGER);
+ $acl->add('ActionCreation', '*', Role::PROJECT_MANAGER);
$acl->add('Analytic', '*', Role::PROJECT_MANAGER);
$acl->add('Board', 'save', Role::PROJECT_MEMBER);
$acl->add('BoardPopover', '*', Role::PROJECT_MEMBER);
diff --git a/app/Template/action/index.php b/app/Template/action/index.php
index 6e9c16a5..63d63887 100644
--- a/app/Template/action/index.php
+++ b/app/Template/action/index.php
@@ -1,75 +1,71 @@
<div class="page-header">
<h2><?= t('Automatic actions for the project "%s"', $project['name']) ?></h2>
+ <ul>
+ <li>
+ <i class="fa fa-plus fa-fw"></i>
+ <?= $this->url->link(t('Add a new action'), 'ActionCreation', 'create', array('project_id' => $project['id']), false, 'popover') ?>
+ </li>
+ <li>
+ <i class="fa fa-copy fa-fw"></i>
+ <?= $this->url->link(t('Import from another project'), 'ActionProject', 'project', array('project_id' => $project['id']), false, 'popover') ?>
+ </li>
+ </ul>
</div>
-<?php if (! empty($actions)): ?>
+<?php if (empty($actions)): ?>
+ <p class="alert"><?= t('There is no action at the moment.') ?></p>
+<?php else: ?>
+ <table>
+ <tr>
+ <th><?= t('Automatic actions') ?></th>
+ <th><?= t('Action parameters') ?></th>
+ <th><?= t('Action') ?></th>
+ </tr>
-<h3><?= t('Defined actions') ?></h3>
-<table>
- <tr>
- <th><?= t('Automatic actions') ?></th>
- <th><?= t('Action parameters') ?></th>
- <th><?= t('Action') ?></th>
- </tr>
-
- <?php foreach ($actions as $action): ?>
- <tr>
- <td>
- <ul>
- <li>
- <?= t('Event name') ?> =
- <strong><?= $this->text->in($action['event_name'], $available_events) ?></strong>
- </li>
- <li>
- <?= t('Action name') ?> =
- <strong><?= $this->text->in($action['action_name'], $available_actions) ?></strong>
- </li>
- <ul>
- </td>
- <td>
- <ul>
- <?php foreach ($action['params'] as $param_name => $param_value): ?>
- <li>
- <?= $this->text->in($param_name, $available_params[$action['action_name']]) ?> =
- <strong>
- <?php if ($this->text->contains($param_name, 'column_id')): ?>
- <?= $this->text->in($param_value, $columns_list) ?>
- <?php elseif ($this->text->contains($param_name, 'user_id')): ?>
- <?= $this->text->in($param_value, $users_list) ?>
- <?php elseif ($this->text->contains($param_name, 'project_id')): ?>
- <?= $this->text->in($param_value, $projects_list) ?>
- <?php elseif ($this->text->contains($param_name, 'color_id')): ?>
- <?= $this->text->in($param_value, $colors_list) ?>
- <?php elseif ($this->text->contains($param_name, 'category_id')): ?>
- <?= $this->text->in($param_value, $categories_list) ?>
- <?php elseif ($this->text->contains($param_name, 'link_id')): ?>
- <?= $this->text->in($param_value, $links_list) ?>
- <?php else: ?>
- <?= $this->text->e($param_value) ?>
- <?php endif ?>
- </strong>
- </li>
- <?php endforeach ?>
- </ul>
- </td>
- <td>
- <?= $this->url->link(t('Remove'), 'action', 'confirm', array('project_id' => $project['id'], 'action_id' => $action['id']), false, 'popover') ?>
- </td>
- </tr>
- <?php endforeach ?>
-</table>
-
-<?php endif ?>
-
-<h3><?= t('Add an action') ?></h3>
-<form method="post" action="<?= $this->url->href('action', 'event', array('project_id' => $project['id'])) ?>" class="listing">
- <?= $this->form->csrf() ?>
- <?= $this->form->hidden('project_id', $values) ?>
-
- <?= $this->form->label(t('Action'), 'action_name') ?>
- <?= $this->form->select('action_name', $available_actions, $values) ?>
-
- <div class="form-actions">
- <button type="submit" class="btn btn-blue"><?= t('Next step') ?></button>
- </div>
-</form> \ No newline at end of file
+ <?php foreach ($actions as $action): ?>
+ <tr>
+ <td>
+ <ul>
+ <li>
+ <?= t('Event name') ?> =
+ <strong><?= $this->text->in($action['event_name'], $available_events) ?></strong>
+ </li>
+ <li>
+ <?= t('Action name') ?> =
+ <strong><?= $this->text->in($action['action_name'], $available_actions) ?></strong>
+ </li>
+ <ul>
+ </td>
+ <td>
+ <ul>
+ <?php foreach ($action['params'] as $param_name => $param_value): ?>
+ <li>
+ <?= $this->text->in($param_name, $available_params[$action['action_name']]) ?> =
+ <strong>
+ <?php if ($this->text->contains($param_name, 'column_id')): ?>
+ <?= $this->text->in($param_value, $columns_list) ?>
+ <?php elseif ($this->text->contains($param_name, 'user_id')): ?>
+ <?= $this->text->in($param_value, $users_list) ?>
+ <?php elseif ($this->text->contains($param_name, 'project_id')): ?>
+ <?= $this->text->in($param_value, $projects_list) ?>
+ <?php elseif ($this->text->contains($param_name, 'color_id')): ?>
+ <?= $this->text->in($param_value, $colors_list) ?>
+ <?php elseif ($this->text->contains($param_name, 'category_id')): ?>
+ <?= $this->text->in($param_value, $categories_list) ?>
+ <?php elseif ($this->text->contains($param_name, 'link_id')): ?>
+ <?= $this->text->in($param_value, $links_list) ?>
+ <?php else: ?>
+ <?= $this->text->e($param_value) ?>
+ <?php endif ?>
+ </strong>
+ </li>
+ <?php endforeach ?>
+ </ul>
+ </td>
+ <td>
+ <?= $this->url->link(t('Remove'), 'action', 'confirm', array('project_id' => $project['id'], 'action_id' => $action['id']), false, 'popover') ?>
+ </td>
+ </tr>
+ <?php endforeach ?>
+ </table>
+<?php endif ?> \ No newline at end of file
diff --git a/app/Template/action_creation/create.php b/app/Template/action_creation/create.php
new file mode 100644
index 00000000..bccb19b3
--- /dev/null
+++ b/app/Template/action_creation/create.php
@@ -0,0 +1,16 @@
+<div class="page-header">
+ <h2><?= t('Add an action') ?></h2>
+</div>
+<form class="popover-form" method="post" action="<?= $this->url->href('ActionCreation', 'event', array('project_id' => $project['id'])) ?>">
+ <?= $this->form->csrf() ?>
+ <?= $this->form->hidden('project_id', $values) ?>
+
+ <?= $this->form->label(t('Action'), 'action_name') ?>
+ <?= $this->form->select('action_name', $available_actions, $values) ?>
+
+ <div class="form-actions">
+ <button type="submit" class="btn btn-blue"><?= t('Next step') ?></button>
+ <?= t('or') ?>
+ <?= $this->url->link(t('cancel'), 'Action', 'index', array(), false, 'close-popover') ?>
+ </div>
+</form> \ No newline at end of file
diff --git a/app/Template/action/event.php b/app/Template/action_creation/event.php
index f4f12db3..e7e5aaf9 100644
--- a/app/Template/action/event.php
+++ b/app/Template/action_creation/event.php
@@ -1,15 +1,17 @@
<div class="page-header">
- <h2><?= t('Automatic actions for the project "%s"', $project['name']) ?></h2>
+ <h2><?= t('Choose an event') ?></h2>
</div>
-<h3><?= t('Choose an event') ?></h3>
-<form method="post" action="<?= $this->url->href('action', 'params', array('project_id' => $project['id'])) ?>">
+<form class="popover-form" method="post" action="<?= $this->url->href('ActionCreation', 'params', array('project_id' => $project['id'])) ?>">
<?= $this->form->csrf() ?>
<?= $this->form->hidden('project_id', $values) ?>
<?= $this->form->hidden('action_name', $values) ?>
+ <?= $this->form->label(t('Action'), 'action_name') ?>
+ <?= $this->form->select('action_name', $available_actions, $values, array(), array('disabled')) ?>
+
<?= $this->form->label(t('Event'), 'event_name') ?>
<?= $this->form->select('event_name', $events, $values) ?>
@@ -20,6 +22,6 @@
<div class="form-actions">
<button type="submit" class="btn btn-blue"><?= t('Next step') ?></button>
<?= t('or') ?>
- <?= $this->url->link(t('cancel'), 'action', 'index', array('project_id' => $project['id'])) ?>
+ <?= $this->url->link(t('cancel'), 'action', 'index', array('project_id' => $project['id']), false, 'close-popover') ?>
</div>
</form> \ No newline at end of file
diff --git a/app/Template/action/params.php b/app/Template/action_creation/params.php
index 99e9206f..59ff6ce9 100644
--- a/app/Template/action/params.php
+++ b/app/Template/action_creation/params.php
@@ -1,9 +1,8 @@
<div class="page-header">
- <h2><?= t('Automatic actions for the project "%s"', $project['name']) ?></h2>
+ <h2><?= t('Define action parameters') ?></h2>
</div>
-<h3><?= t('Define action parameters') ?></h3>
-<form method="post" action="<?= $this->url->href('action', 'create', array('project_id' => $project['id'])) ?>" autocomplete="off">
+<form class="popover-form" method="post" action="<?= $this->url->href('ActionCreation', 'save', array('project_id' => $project['id'])) ?>" autocomplete="off">
<?= $this->form->csrf() ?>
@@ -11,8 +10,13 @@
<?= $this->form->hidden('event_name', $values) ?>
<?= $this->form->hidden('action_name', $values) ?>
- <?php foreach ($action_params as $param_name => $param_desc): ?>
+ <?= $this->form->label(t('Action'), 'action_name') ?>
+ <?= $this->form->select('action_name', $available_actions, $values, array(), array('disabled')) ?>
+
+ <?= $this->form->label(t('Event'), 'event_name') ?>
+ <?= $this->form->select('event_name', $events, $values, array(), array('disabled')) ?>
+ <?php foreach ($action_params as $param_name => $param_desc): ?>
<?php if ($this->text->contains($param_name, 'column_id')): ?>
<?= $this->form->label($param_desc, $param_name) ?>
<?= $this->form->select('params['.$param_name.']', $columns_list, $values) ?>
@@ -38,12 +42,11 @@
<?= $this->form->label($param_desc, $param_name) ?>
<?= $this->form->text('params['.$param_name.']', $values) ?>
<?php endif ?>
-
<?php endforeach ?>
<div class="form-actions">
<button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
<?= t('or') ?>
- <?= $this->url->link(t('cancel'), 'action', 'index', array('project_id' => $project['id'])) ?>
+ <?= $this->url->link(t('cancel'), 'action', 'index', array('project_id' => $project['id']), false, 'close-popover') ?>
</div>
</form> \ No newline at end of file
diff --git a/app/Template/action_project/project.php b/app/Template/action_project/project.php
new file mode 100644
index 00000000..226f3b19
--- /dev/null
+++ b/app/Template/action_project/project.php
@@ -0,0 +1,20 @@
+<div class="page-header">
+ <h2><?= t('Import actions from another project') ?></h2>
+</div>
+<?php if (empty($projects_list)): ?>
+ <p class="alert"><?= t('There is no available project.') ?></p>
+<?php else: ?>
+ <form class="popover-form" method="post" action="<?= $this->url->href('ActionProject', 'save', array('project_id' => $project['id'])) ?>" autocomplete="off">
+
+ <?= $this->form->csrf() ?>
+
+ <?= $this->form->label(t('Create from another project'), 'src_project_id') ?>
+ <?= $this->form->select('src_project_id', $projects_list) ?>
+
+ <div class="form-actions">
+ <button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
+ <?= t('or') ?>
+ <?= $this->url->link(t('cancel'), 'Action', 'index', array(), false, 'close-popover') ?>
+ </div>
+ </form>
+<?php endif ?> \ No newline at end of file
diff --git a/assets/css/app.css b/assets/css/app.css
index 6b515548..33749fa8 100644
--- a/assets/css/app.css
+++ b/assets/css/app.css
@@ -18,4 +18,4 @@
* Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}
-.c3 svg{font:10px sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{-webkit-user-select:none;-moz-user-select:none;user-select:none}.c3-bars path,.c3-event-rect,.c3-legend-item-tile,.c3-xgrid-focus,.c3-ygrid{shape-rendering:crispEdges}.c3-chart-arc path{stroke:#fff}.c3-chart-arc text{fill:#fff;font-size:13px}.c3-grid line{stroke:#aaa}.c3-grid text{fill:#aaa}.c3-xgrid,.c3-ygrid{stroke-dasharray:3 3}.c3-text.c3-empty{fill:gray;font-size:2em}.c3-line{stroke-width:1px}.c3-circle._expanded_{stroke-width:1px;stroke:#fff}.c3-selected-circle{fill:#fff;stroke-width:2px}.c3-bar{stroke-width:0}.c3-bar._expanded_{fill-opacity:.75}.c3-target.c3-focused{opacity:1}.c3-target.c3-focused path.c3-line,.c3-target.c3-focused path.c3-step{stroke-width:2px}.c3-target.c3-defocused{opacity:.3!important}.c3-region{fill:#4682b4;fill-opacity:.1}.c3-brush .extent{fill-opacity:.1}.c3-legend-item{font-size:12px}.c3-legend-item-hidden{opacity:.15}.c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3-tooltip-container{z-index:10}.c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;-webkit-box-shadow:7px 7px 12px -9px #777;-moz-box-shadow:7px 7px 12px -9px #777;box-shadow:7px 7px 12px -9px #777;opacity:.9}.c3-tooltip tr{border:1px solid #CCC}.c3-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#FFF}.c3-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3-tooltip td.value{text-align:right}.c3-area{stroke-width:0;opacity:.2}.c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3-chart-arcs .c3-chart-arcs-gauge-max,.c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3-chart-arc .c3-gauge-value{fill:#000}li,ul,ol,table,tr,td,th,p,blockquote,body{margin:0;padding:0;font-size:100%}body{margin-left:10px;margin-right:10px;padding-bottom:10px;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;text-rendering:optimizeLegibility}.page{clear:both}ul.no-bullet li{list-style-type:none;margin-left:0}.pull-right{text-align:right}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3)}.chosen-select{min-height:27px}.avatar{float:left;margin-right:10px}#ui-datepicker-div{font-size:.8em}#app-loading-icon{position:fixed;right:3px;bottom:3px}.web-notification-icon{color:#36c}.web-notification-icon:focus,.web-notification-icon:hover{color:#000}.smaller{font-size:.85em}a{color:#36c;border:0}a:focus{outline:0;color:#df5353;text-decoration:none;border:1px dotted #aaa}a:hover{color:#333;text-decoration:none}h1,h2,h3{font-weight:normal;color:#333}h2{font-size:1.3em;margin-bottom:10px}h3{margin-top:10px;font-size:1.2em}table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:20px;font-size:.95em}#calendar table{margin-bottom:0}th,td{border:1px solid #eee;padding-top:.5em;padding-bottom:.5em;padding-left:3px;padding-right:3px}td{vertical-align:top}th{background:#fbfbfb;text-align:left}td li{margin-left:20px}.table-small{font-size:.8em}th a{text-decoration:none;color:#333}th a:focus,th a:hover{text-decoration:underline}.table-fixed{table-layout:fixed;white-space:nowrap}.table-fixed th{overflow:hidden}.table-fixed td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-stripped tr:nth-child(odd){background:#fefefe}.column-3{width:3%}.column-5{width:5%}.column-8{width:7.5%}.column-10{width:10%}.column-12{width:12%}.column-15{width:15%}.column-18{width:18%}.column-20{width:20%}.column-25{width:25%}.column-30{width:30%}.column-35{width:35%}.column-40{width:40%}.column-50{width:50%}.column-60{width:60%}.column-70{width:70%}.draggable-row-handle{cursor:move;color:#dedede}.draggable-row-handle:hover{color:#333}tr.draggable-item-selected{background:#fff;border:2px solid #666;box-shadow:4px 2px 10px -4px rgba(0,0,0,0.55)}tr.draggable-item-selected td{border-top:0;border-bottom:0}tr.draggable-item-selected td:first-child{border-left:0}tr.draggable-item-selected td:last-child{border-right:0}.table-stripped tr.draggable-item-hover,tr.draggable-item-hover{background:#fefff2}form{margin-bottom:20px}label{cursor:pointer;display:block;margin-top:10px}input[type="number"],input[type="date"],input[type="email"],input[type="password"],input[type="text"]{color:#888;border:1px solid #ccc;width:300px;max-width:95%;font-size:100%;height:25px;padding-bottom:0;font-family:sans-serif;margin-top:10px;-webkit-appearance:none;appearance:none}input[type="number"]:focus,input[type="date"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="text"]:focus,textarea:focus{color:#000;border-color:rgba(82,168,236,0.8);outline:0;box-shadow:0 0 8px rgba(82,168,236,0.6)}input.form-numeric,input[type="number"]{width:70px}textarea{border:1px solid #ccc;width:400px;max-width:99%;height:200px;font-size:100%;font-family:sans-serif}select{max-width:95%}select:focus{outline:0}::-webkit-input-placeholder{color:#ddd;padding-top:2px}::-ms-input-placeholder{color:#ddd;padding-top:2px}::-moz-placeholder{color:#ddd;padding-top:2px}.form-actions{padding-top:20px;clear:both}input.form-error,textarea.form-error{border:2px solid #b94a48}input.form-error:focus,textarea.form-error:focus{box-shadow:none;border:2px solid #b94a48}.form-required{color:red;padding-left:5px;font-weight:bold}.form-errors{color:#b94a48;list-style-type:none}ul.form-errors li{margin-left:0}.form-help{font-size:.8em;color:brown;margin-bottom:15px}.form-inline{padding:0;margin:0;border:0}.form-inline label{display:inline}.form-inline input,.form-inline select{margin:0;margin-right:15px}.form-inline .form-required{display:none}.form-inline-group{display:inline}input.form-datetime,input.form-date{width:150px}input.form-input-large{width:400px}.form-column{float:left;margin-right:3%;max-width:47%}.form-column ul{margin-top:15px}.form-clear{clear:both;padding-top:20px;padding-bottom:10px}.form-login{width:350px;margin:0 auto;margin-top:8%}.form-column li,.form-login li{margin-left:25px;line-height:25px}.form-login h2{margin-bottom:30px;font-size:1.5em;font-weight:bold}label+.form-tabs{margin-top:10px}.form-tabs{width:100%;max-width:800px}ul.form-tabs-nav{margin-bottom:8px;margin-top:0}.form-tabs-nav li{margin-left:0;display:inline}.form-tab{margin-right:20px}.form-tab a{color:#ccc;font-weight:bold;text-decoration:none}.form-tab a:focus,.form-tab a:hover{color:#000}.form-tab-selected a{color:#333}.preview-area{border:1px dashed #000;padding-top:5px;padding-left:5px;padding-right:5px;margin-bottom:5px;display:none;overflow:auto}.reset-password{margin-top:20px}.reset-password a{font-size:.8em;color:#999}.btn{-webkit-appearance:none;appearance:none;display:inline-block;color:#333;border:1px solid #ccc;background:#efefef;padding:5px;padding-left:15px;padding-right:15px;font-size:.9em;cursor:pointer;border-radius:2px}a.btn{text-decoration:none;font-weight:bold}.btn-small{padding:2px;padding-left:5px;padding-right:5px}.btn-red{border-color:#b0281a;background:#d14836;color:#fff}a.btn-red:hover,.btn-red:hover,.btn-red:focus{color:#fff;background:#c53727}a.btn-blue,.btn-blue{border-color:#3079ed;background:#4d90fe;color:#fff}a.btn-blue:hover,.btn-blue:hover,a.btn-blue:focus,.btn-blue:focus{border-color:#2f5bb7;background:#357ae8}.btn-blue:disabled{color:#ccc;border:1px solid #ccc;background:#f7f7f7}#main .alert,.page .alert{margin-top:10px}.alert{padding:8px 35px 8px 14px;margin-bottom:10px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5;border-radius:4px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-normal{color:#333;background-color:#f0f0f0;border-color:#ddd}.alert ul{margin-top:10px;margin-bottom:10px}.alert li{margin-left:25px}.tooltip-arrow:after{background:#fff;border:1px solid #aaa;box-shadow:0 0 5px #aaa}div.ui-tooltip{min-width:200px;max-width:600px;font-size:.85em}.tooltip-arrow{width:20px;height:10px;overflow:hidden;position:absolute}.tooltip-arrow.top{top:-10px}.tooltip-arrow.bottom{bottom:-10px}.tooltip-arrow.align-left{left:10px}.tooltip-arrow.align-right{right:10px}.tooltip-arrow:after{content:"";position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.tooltip-arrow.bottom:after{top:-10px}.tooltip-arrow.top:after{bottom:-10px}.tooltip-arrow.align-left:after{left:0}.tooltip-arrow.align-right:after{right:0}.tooltip-large{width:550px}.ui-tooltip-content .markdown p{margin-bottom:0}.tooltip .fa-info-circle{color:#999;font-size:.95em}.ui-tooltip ul{margin-left:20px}.ui-tooltip dl{margin:-5px 0 0 0;padding:0}.ui-tooltip dt{margin-top:5px}.ui-tooltip dd{margin-left:0}.ui-tooltip .progress{display:inline-block;min-width:3em;text-align:right}header{margin-top:10px;padding-bottom:10px;border-bottom:1px solid #dedede}header h1{margin:0;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%;float:left}header ul{text-align:right;font-size:.9em}header li{display:inline;padding-left:30px}header a{color:#777;text-decoration:none}nav .active a{color:#333;font-weight:bold}.logo a{opacity:.5;color:#d40000}.logo span{color:#333}.logo a:hover{opacity:.8;color:#333}.logo a:focus span,.logo a:hover span{color:#d40000}header .user-links .dropdown{margin-left:15px}header h1 .tooltip{opacity:.3;font-size:.6em}.page-header{margin-bottom:20px}.page-header h2{margin:0;padding:0;font-size:1.4em;font-weight:bold;border-bottom:1px dotted #ccc}.page-header h2 a{color:#333;text-decoration:none}.page-header h2 a:focus,.page-header h2 a:hover{color:#aaa}.page-header ul{text-align:left;margin-top:5px;display:inline-block}.menu-inline li,.page-header li{display:inline;padding-right:15px;font-size:.95em}.page-header li.active a{color:#333;text-decoration:none;font-weight:bold}.page-header li.active a:hover,.page-header li.active a:focus{text-decoration:underline}.menu-inline{margin-bottom:5px}@media only screen and (max-width:640px){.page-header-mobile li{display:block;margin-bottom:5px}}.public-board{margin-top:5px}.public-task{max-width:800px;margin:0 auto;margin-top:5px}#board-container{overflow-x:auto}#board{table-layout:fixed;margin-bottom:0}#board th.board-column-header{width:240px}#board td{vertical-align:top}.board-container-compact{overflow-x:initial}@media all and (-ms-high-contrast:active),(-ms-high-contrast:none){.board-container-compact #board{table-layout:auto}}#board th.board-column-header.board-column-compact{width:initial}.board-column-collapsed{display:none}td.board-column-task-collapsed{font-weight:bold;background-color:#fbfbfb}#board th.board-column-header-collapsed{width:28px;min-width:28px;text-align:center;overflow:hidden}.board-rotation-wrapper{position:relative;padding:8px 4px;min-height:150px;overflow:hidden}.board-rotation{white-space:nowrap;-webkit-backface-visibility:hidden;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%}.board-column-title .dropdown-menu{text-decoration:none}.board-add-icon{float:left;padding:0 5px}.board-add-icon a{text-decoration:none;color:#36c;font-size:150%;line-height:70%}.board-add-icon a:focus,.board-add-icon a:hover{text-decoration:none;color:red}.board-column-header-task-count{color:#999;font-weight:normal}th.board-column-header-collapsed .board-column-header-task-count{font-size:.85em}a.board-swimlane-toggle{font-size:.95em;text-decoration:none}a.board-swimlane-toggle:hover,a.board-swimlane-toggle:focus{color:#000;text-decoration:none;border:0}.board-task-list{overflow:auto;min-height:60px}.board-task-list-limit{background-color:#df5353}.draggable-item{cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none}.draggable-placeholder{border:2px dashed #000;background:#fafafa;height:70px;margin-bottom:10px}div.draggable-item-selected{border:1px solid #000}.task-board-sort-handle{float:left;padding-right:5px}.task-board-saving-state{opacity:.3}.task-board-saving-icon{position:absolute;margin:auto;width:100%;text-align:center;color:#000}.task-board{position:relative;margin-bottom:4px;border:1px solid #000;padding:2px;font-size:.85em;word-wrap:break-word}div.task-board-recent{border-width:2px}div.task-board-status-closed{user-select:none;border:1px dotted #555}.task-table a,.task-board a{color:#000;text-decoration:none;font-weight:bold}.task-table a:focus,.task-table a:hover,.task-board a:focus,.task-board a:hover{text-decoration:underline}.task-board-collapsed{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}a.task-board-collapsed-title{font-weight:normal}.task-board .dropdown{font-size:1.1em}.task-board-title{margin-top:5px;margin-bottom:5px;font-size:1.1em}.task-board-title a{font-weight:normal}.task-board-user{font-size:.8em}.task-board-current-user a{text-decoration:underline}.task-board-current-user a:focus,.task-board-current-user a:hover{text-decoration:none}a.task-board-nobody{font-weight:normal;font-style:italic;color:#444}.task-board-category-container{text-align:right}.task-board-category{font-weight:bold;font-size:.9em;color:#000;border:1px solid #555;padding:2px;padding-right:5px;padding-left:5px}.task-board-icons{text-align:right;margin-top:8px}.task-board-icons a{opacity:.5}.task-board-icons span{opacity:.5;margin-left:2px}.task-board-icons a:hover,.task-board-icons span:hover{opacity:1.0}.task-board-date{font-weight:bold;color:#000}span.task-board-date-overdue{color:#d90000;opacity:1.0}.task-board .task-score{font-weight:bold;font-size:1.1em}.task-board-closed,.task-board-days{position:absolute;right:5px;top:5px;opacity:.5;font-size:.8em}.task-board-days:hover{opacity:1.0}.task-days-age{border:#666 1px solid;padding:1px 4px 1px 2px;border-top-left-radius:3px;border-bottom-left-radius:3px}.task-days-incolumn{border:#666 1px solid;border-left:0;margin-left:-5px;padding:1px 2px 1px 4px;border-top-right-radius:3px;border-bottom-right-radius:3px}.board-container-compact .task-board-days{display:none}#task-summary{margin-bottom:15px}#task-summary h2{color:#666;font-size:2.5em;margin-top:0;padding-top:0}.task-summary-container{border:2px solid #000;border-radius:8px;padding:15px;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-justify-content:space-between;justify-content:space-between}.task-summary-column{font-size:.9em;color:#666}.task-summary-column span{color:#555}.task-summary-column li{line-height:23px}.task-show-description{border-left:4px solid #333;padding-left:20px}.task-show-description-textarea{width:99%;max-width:99%;height:300px}.task-link-closed{text-decoration:line-through}.flag-milestone{color:green}.color-picker{min-height:35px}.color-square{display:inline-block;width:30px;height:30px;margin-right:5px;margin-bottom:5px;border:1px solid #000;cursor:pointer}.color-square:hover{border-style:dotted}div.color-square-selected{border-width:2px;width:28px;height:28px;box-shadow:3px 2px 10px 0 rgba(180,180,180,0.9)}.assign-me{font-size:.8em;vertical-align:bottom}.comment{margin-bottom:20px}.comment:hover{background:#f7f8e0}.comment-inner{border-left:4px solid #333;padding-bottom:10px;padding-left:20px;margin-left:20px;margin-right:10px}.comment-preview{border:2px solid #000;border-radius:3px;padding:10px}.comment-preview .comment-inner{border:0;padding:0;margin:0}.comment-title{margin-bottom:8px;padding-bottom:3px;border-bottom:1px dotted #aaa}.ui-tooltip .comment-title{font-size:80%}.ui-tooltip .comment-inner{padding-bottom:0}.comment-actions{font-size:.8em;padding:0;text-align:right}.comment-actions li{display:inline;padding-left:5px;padding-right:5px;border-right:1px dotted #000}.comment-actions li:last-child{padding-right:0;border:0}.comment-username{font-weight:bold}.comment-textarea{height:200px;width:80%;max-width:800px}.comment-sorting{font-size:.5em}span.comment-sorting a{color:#555;font-weight:normal;text-decoration:none}span.comment-sorting a:hover{color:#aaa}#comments .comment-textarea{height:80px;width:500px}.subtasks-table{font-size:.85em}.subtasks-table td{vertical-align:middle}.markdown{line-height:1.4em;font-size:1.0}.markdown h1{margin-top:5px;margin-bottom:10px;font-size:1.5em;font-weight:bold;text-decoration:underline}.markdown h2{font-size:1.2em;font-weight:bold;text-decoration:underline}.markdown h3{font-size:1.1em;text-decoration:underline}.markdown h4{font-size:1.1em;text-decoration:underline}.markdown p{margin-bottom:10px}.markdown ol,.markdown ul{margin-left:25px;margin-top:10px;margin-bottom:10px}.markdown pre{background:#fbfbfb;padding:10px;border-radius:5px;border:1px solid #ddd;overflow:auto;color:#444}.markdown blockquote{font-style:italic;border-left:3px solid #ddd;padding-left:10px;margin-bottom:10px;margin-left:20px}.markdown img{display:block;max-width:80%;margin-top:10px}.documentation{margin:0 auto;padding:20px;max-width:850px;background:#fefefe;border:1px solid #ccc;border-radius:5px;font-size:1.1em;color:#555}.documentation img{border:1px solid #333}.documentation h1{text-decoration:none;font-size:1.8em;margin-bottom:30px}.documentation h2{font-size:1.3em;text-decoration:none;border-bottom:1px solid #ccc;margin-bottom:25px}.documentation li{line-height:30px}.user-mention-link{font-weight:bold;color:#000;text-decoration:none}.user-mention-link:hover{color:#555}.listing{border-radius:4px;padding:8px 35px 8px 14px;margin-bottom:20px;border:1px solid #ddd;color:#333;background-color:#fcfcfc;overflow:auto}.listing li{list-style-type:square;margin-left:20px;margin-bottom:3px}.listing ul{margin-top:15px;margin-bottom:15px}.activity-event{margin-bottom:20px}.activity-datetime{color:#999;font-size:.85em}.activity-content{margin-top:10px;margin-left:20px;padding-left:20px;border-left:2px solid #666}.activity-title{font-weight:bold;color:#000}.activity-description{font-size:.9em;color:#aaa;padding-top:5px}.activity-description ul{margin-top:10px}.activity-description li{margin-left:40px;list-style-type:circle;color:#555}.activity-description .markdown{margin-top:10px;color:#555}.activity-changes{margin-top:10px;font-size:.85em}.activity-changes ul{margin-left:25px}.dashboard-project-stats span{font-size:.75em;margin-right:10px;color:#999}.dashboard-project-stats strong{font-size:1.2em}.dashboard-table-link{font-weight:bold;color:#444;text-decoration:none}.dashboard-table-link:focus,.dashboard-table-link:hover{color:#999}.pagination{text-align:center}.pagination-next{margin-left:5px}.pagination-previous{margin-right:5px}#popover-container{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.8);overflow:auto;z-index:100}#popover-content{position:absolute;width:70%;margin:0 0 0 -35%;left:50%;top:1%;padding:15px;background:#fff;overflow:auto;max-height:85%}#main .confirm{max-width:700px;font-size:1.1em}.sidebar-container{margin-top:10px;height:100%;width:100%;display:-ms-flexbox;display:-webkit-box;display:-moz-box;display:-ms-box;display:box;-ms-flex-direction:row;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-ms-box-orient:horizontal;box-orient:horizontal}.sidebar-content{padding-left:10px;-ms-flex:1;-webkit-box-flex:1;-moz-box-flex:1;-ms-box-flex:1;box-flex:1}.sidebar{padding-right:10px;border-right:1px dotted #eee;font-size:.95em;max-width:240px;min-width:190px;width:18%;-ms-flex:0 100px;-webkit-box-flex:0;-moz-box-flex:0;-ms-box-flex:0;box-flex:0}.sidebar h2{margin-top:0}.sidebar a{text-decoration:none}.sidebar li{list-style-type:none;line-height:35px;border-bottom:1px dotted #efefef;padding-left:13px}.sidebar li:hover{border-left:5px solid #555;padding-left:8px}.sidebar li.active{border-left:5px solid #333;padding-left:8px}.sidebar li.active a{color:#333;font-weight:bold}.sidebar li.active a:focus,.sidebar li.active a:hover{color:#555}@media only screen and (max-width:1024px){body{font-size:.85em}.form-tab{max-width:404px}.form-inline-group input[type="submit"],.form-inline-group label{display:block}.form-inline-group input[type="submit"]{margin-top:20px}td>input[type="text"]{max-width:150px}.page-header .form-input-large{width:300px}}@media only screen and (max-width:1024px) and (orientation:landscape){header{padding-bottom:4px}div.chosen-container{font-size:.9em}input[type="number"],input[type="date"],input[type="email"],input[type="password"],input[type="text"]{height:18px}.page-header .form-input-large{width:300px}}@media only screen and (max-width:640px){.hide-mobile{display:none}}.dropdown{display:inline;position:relative}.dropdown ul{display:none}ul.dropdown-submenu-open{display:block;position:absolute;z-index:1000;min-width:285px;list-style:none;margin:3px 0 0 1px;padding:6px 0;background-color:#fff;border:1px solid #b2b2b2;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,0.15)}.textarea-dropdown li,.dropdown-submenu-open li{display:block;margin:0;padding:0;padding-left:10px;padding-right:10px;padding-top:8px;padding-bottom:8px;font-size:.85em;border-bottom:1px solid #f8f8f8;cursor:pointer}.dropdown-submenu-open li.no-hover{cursor:default}.textarea-dropdown li:last-child,.dropdown-submenu-open li:last-child{border:0}.textarea-dropdown .active,.textarea-dropdown li:hover,.dropdown-submenu-open li:not(.no-hover):hover{background:#4078c0;color:#fff}.textarea-dropdown .active a,.textarea-dropdown li:hover a,.dropdown-submenu-open li:hover a{color:#fff}.textarea-dropdown a,.dropdown-submenu-open a{text-decoration:none;color:#333}.dropdown-submenu-open a:focus{text-decoration:underline}.page-header .dropdown{padding-right:10px}.dropdown-menu-link-text,.dropdown-menu-link-icon{color:#333;text-decoration:none}.dropdown-menu-link-text:hover{text-decoration:underline}.textarea-dropdown{list-style:none;margin:3px 0 0 1px;padding:6px 0;background-color:#fff;border:1px solid #b2b2b2;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,0.15)}#file-dropzone,#screenshot-zone{position:relative;border:2px dashed #ccc;width:99%;height:250px;overflow:auto}#file-dropzone-inner,#screenshot-inner{position:absolute;left:0;bottom:48%;width:100%;text-align:center;color:#aaa}#screenshot-zone.screenshot-pasted{border:2px solid #333}#file-list{margin:20px}#file-list li{list-style-type:none;padding-top:8px;padding-bottom:8px;border-bottom:1px dotted #ddd;width:95%}#file-list li.file-error{font-weight:bold;color:#b94a48}.project-header{margin-top:8px;margin-bottom:20px}.filter-box{display:inline-block;position:relative;font-size:0;margin-bottom:20px}.project-header .filter-box{margin:0}.filter-box form{margin:0}.filter-box input[type="text"]{margin:0;font-size:16px;height:26px;border-color:#dedede;border-top-left-radius:5px;border-bottom-left-radius:5px;vertical-align:top}.filter-box input[type="text"]:focus{color:#000;border-color:rgba(82,168,236,0.8);outline:0;box-shadow:0 0 8px rgba(82,168,236,0.6)}.filter-box div.dropdown{display:inline-block;font-size:16px;border:1px solid #dedede;border-left:0;margin:0;padding:0;padding-left:5px;padding-right:8px;height:27px}.filter-box div.dropdown:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.filter-box div.dropdown a{line-height:27px}div.ganttview-hzheader-month,div.ganttview-hzheader-day,div.ganttview-vtheader,div.ganttview-vtheader-item-name,div.ganttview-vtheader-series,div.ganttview-grid,div.ganttview-grid-row-cell{float:left}div.ganttview-hzheader-month,div.ganttview-hzheader-day{text-align:center}div.ganttview-grid-row-cell.last,div.ganttview-hzheader-day.last,div.ganttview-hzheader-month.last{border-right:0}div.ganttview{border:1px solid #999}div.ganttview-hzheader-month{width:60px;height:20px;border-right:1px solid #d0d0d0;line-height:20px;overflow:hidden}div.ganttview-hzheader-day{width:20px;height:20px;border-right:1px solid #f0f0f0;border-top:1px solid #d0d0d0;line-height:20px;color:#777}div.ganttview-vtheader{margin-top:41px;width:400px;overflow:hidden;background-color:#fff}div.ganttview-vtheader-item{color:#666}div.ganttview-vtheader-series-name{width:400px;height:31px;line-height:31px;padding-left:3px;border-top:1px solid #d0d0d0;font-size:.9em;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}div.ganttview-vtheader-series-name a{color:#666;text-decoration:none}div.ganttview-vtheader-series-name a:hover{color:#333;text-decoration:underline}div.ganttview-vtheader-series-name a i{color:#000}div.ganttview-vtheader-series-name a:hover i{color:#666}div.ganttview-slide-container{overflow:auto;border-left:1px solid #999}div.ganttview-grid-row-cell{width:20px;height:31px;border-right:1px solid #f0f0f0;border-top:1px solid #f0f0f0}div.ganttview-grid-row-cell.ganttview-weekend{background-color:#fafafa}div.ganttview-blocks{margin-top:40px}div.ganttview-block-container{height:28px;padding-top:4px}div.ganttview-block{position:relative;height:25px;background-color:#e5ecf9;border:1px solid silver;border-radius:3px}.ganttview-block-movable{cursor:move}div.ganttview-block-not-defined{border-color:#000;background-color:#000}div.ganttview-block-text{position:absolute;height:12px;font-size:.7em;color:#999;padding:2px 3px}div.ganttview-block div.ui-resizable-handle.ui-resizable-s{bottom:-0}.project-creation-options{max-width:500px;border-left:3px dotted #efefef;margin-top:20px;padding-left:15px;padding-bottom:5px;padding-top:5px}.project-overview-columns{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;margin-bottom:20px;font-size:1.4em}.project-overview-column{text-align:center;margin-right:80px}.project-overview-column strong{font-size:1.3em;color:#444}.project-overview-column span{font-size:.8em;color:#777}.file-thumbnails{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:flex-start;justify-content:flex-start}.file-thumbnail{width:250px;border:1px solid #efefef;border-radius:5px;margin-bottom:20px;box-shadow:4px 2px 10px -6px rgba(0,0,0,0.55);margin-right:15px}.file-thumbnail img{border-top-left-radius:5px;border-top-right-radius:5px}.file-thumbnail img:hover{opacity:.5}.file-thumbnail-content{padding-left:8px;padding-right:8px}.file-thumbnail-title{font-weight:700;font-size:.9em;color:#555}.file-thumbnail-description{font-size:.8em;color:#aaa;margin-top:8px;margin-bottom:5px}.file-viewer{position:relative}.file-viewer img{max-width:95%;max-height:85%;margin-top:10px}.views{display:inline-block;margin-left:10px;margin-right:10px;font-size:.9em}.views li{border:1px solid #eee;padding-left:8px;padding-right:8px;padding-top:5px;padding-bottom:5px;display:inline}.menu-inline li.active a,.views li.active a{font-weight:bold;color:#000;text-decoration:none}.views li:first-child{border-right:0;border-top-left-radius:5px;border-bottom-left-radius:5px}.views li:last-child{border-left:0;border-top-right-radius:5px;border-bottom-right-radius:5px} \ No newline at end of file
+.c3 svg{font:10px sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{-webkit-user-select:none;-moz-user-select:none;user-select:none}.c3-bars path,.c3-event-rect,.c3-legend-item-tile,.c3-xgrid-focus,.c3-ygrid{shape-rendering:crispEdges}.c3-chart-arc path{stroke:#fff}.c3-chart-arc text{fill:#fff;font-size:13px}.c3-grid line{stroke:#aaa}.c3-grid text{fill:#aaa}.c3-xgrid,.c3-ygrid{stroke-dasharray:3 3}.c3-text.c3-empty{fill:gray;font-size:2em}.c3-line{stroke-width:1px}.c3-circle._expanded_{stroke-width:1px;stroke:#fff}.c3-selected-circle{fill:#fff;stroke-width:2px}.c3-bar{stroke-width:0}.c3-bar._expanded_{fill-opacity:.75}.c3-target.c3-focused{opacity:1}.c3-target.c3-focused path.c3-line,.c3-target.c3-focused path.c3-step{stroke-width:2px}.c3-target.c3-defocused{opacity:.3!important}.c3-region{fill:#4682b4;fill-opacity:.1}.c3-brush .extent{fill-opacity:.1}.c3-legend-item{font-size:12px}.c3-legend-item-hidden{opacity:.15}.c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3-tooltip-container{z-index:10}.c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;-webkit-box-shadow:7px 7px 12px -9px #777;-moz-box-shadow:7px 7px 12px -9px #777;box-shadow:7px 7px 12px -9px #777;opacity:.9}.c3-tooltip tr{border:1px solid #CCC}.c3-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#FFF}.c3-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3-tooltip td.value{text-align:right}.c3-area{stroke-width:0;opacity:.2}.c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3-chart-arcs .c3-chart-arcs-gauge-max,.c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3-chart-arc .c3-gauge-value{fill:#000}li,ul,ol,table,tr,td,th,p,blockquote,body{margin:0;padding:0;font-size:100%}body{margin-left:10px;margin-right:10px;padding-bottom:10px;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;text-rendering:optimizeLegibility}.page{clear:both}ul.no-bullet li{list-style-type:none;margin-left:0}.pull-right{text-align:right}hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3)}.chosen-select{min-height:27px}.avatar{float:left;margin-right:10px}#ui-datepicker-div{font-size:.8em}#app-loading-icon{position:fixed;right:3px;bottom:3px}.web-notification-icon{color:#36c}.web-notification-icon:focus,.web-notification-icon:hover{color:#000}.smaller{font-size:.85em}a{color:#36c;border:0}a:focus{outline:0;color:#df5353;text-decoration:none;border:1px dotted #aaa}a:hover{color:#333;text-decoration:none}h1,h2,h3{font-weight:normal;color:#333}h2{font-size:1.3em;margin-bottom:10px}h3{margin-top:10px;font-size:1.2em}table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:20px;font-size:.95em}#calendar table{margin-bottom:0}th,td{border:1px solid #eee;padding-top:.5em;padding-bottom:.5em;padding-left:3px;padding-right:3px}td{vertical-align:top}th{background:#fbfbfb;text-align:left}td li{margin-left:20px}.table-small{font-size:.8em}th a{text-decoration:none;color:#333}th a:focus,th a:hover{text-decoration:underline}.table-fixed{table-layout:fixed;white-space:nowrap}.table-fixed th{overflow:hidden}.table-fixed td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-stripped tr:nth-child(odd){background:#fefefe}.column-3{width:3%}.column-5{width:5%}.column-8{width:7.5%}.column-10{width:10%}.column-12{width:12%}.column-15{width:15%}.column-18{width:18%}.column-20{width:20%}.column-25{width:25%}.column-30{width:30%}.column-35{width:35%}.column-40{width:40%}.column-50{width:50%}.column-60{width:60%}.column-70{width:70%}.draggable-row-handle{cursor:move;color:#dedede}.draggable-row-handle:hover{color:#333}tr.draggable-item-selected{background:#fff;border:2px solid #666;box-shadow:4px 2px 10px -4px rgba(0,0,0,0.55)}tr.draggable-item-selected td{border-top:0;border-bottom:0}tr.draggable-item-selected td:first-child{border-left:0}tr.draggable-item-selected td:last-child{border-right:0}.table-stripped tr.draggable-item-hover,tr.draggable-item-hover{background:#fefff2}form{margin-bottom:20px}label{cursor:pointer;display:block;margin-top:10px}input[type="number"],input[type="date"],input[type="email"],input[type="password"],input[type="text"]{color:#888;border:1px solid #ccc;width:300px;max-width:95%;font-size:100%;height:25px;padding-bottom:0;font-family:sans-serif;margin-top:10px;-webkit-appearance:none;appearance:none}input[type="number"]:focus,input[type="date"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="text"]:focus,textarea:focus{color:#000;border-color:rgba(82,168,236,0.8);outline:0;box-shadow:0 0 8px rgba(82,168,236,0.6)}input.form-numeric,input[type="number"]{width:70px}textarea{border:1px solid #ccc;width:400px;max-width:99%;height:200px;font-size:100%;font-family:sans-serif}select{max-width:95%}select:focus{outline:0}::-webkit-input-placeholder{color:#ddd;padding-top:2px}::-ms-input-placeholder{color:#ddd;padding-top:2px}::-moz-placeholder{color:#ddd;padding-top:2px}.form-actions{padding-top:20px;clear:both}input.form-error,textarea.form-error{border:2px solid #b94a48}input.form-error:focus,textarea.form-error:focus{box-shadow:none;border:2px solid #b94a48}.form-required{color:red;padding-left:5px;font-weight:bold}.form-errors{color:#b94a48;list-style-type:none}ul.form-errors li{margin-left:0}.form-help{font-size:.8em;color:brown;margin-bottom:15px}.form-inline{padding:0;margin:0;border:0}.form-inline label{display:inline}.form-inline input,.form-inline select{margin:0;margin-right:15px}.form-inline .form-required{display:none}.form-inline-group{display:inline}input.form-datetime,input.form-date{width:150px}input.form-input-large{width:400px}.form-column{float:left;margin-right:3%;max-width:47%}.form-column ul{margin-top:15px}.form-clear{clear:both;padding-top:20px;padding-bottom:10px}.form-login{width:350px;margin:0 auto;margin-top:8%}.form-column li,.form-login li{margin-left:25px;line-height:25px}.form-login h2{margin-bottom:30px;font-size:1.5em;font-weight:bold}.popover-form{margin-bottom:0}label+.form-tabs{margin-top:10px}.form-tabs{width:100%;max-width:800px}ul.form-tabs-nav{margin-bottom:8px;margin-top:0}.form-tabs-nav li{margin-left:0;display:inline}.form-tab{margin-right:20px}.form-tab a{color:#ccc;font-weight:bold;text-decoration:none}.form-tab a:focus,.form-tab a:hover{color:#000}.form-tab-selected a{color:#333}.preview-area{border:1px dashed #000;padding-top:5px;padding-left:5px;padding-right:5px;margin-bottom:5px;display:none;overflow:auto}.reset-password{margin-top:20px}.reset-password a{font-size:.8em;color:#999}.btn{-webkit-appearance:none;appearance:none;display:inline-block;color:#333;border:1px solid #ccc;background:#efefef;padding:5px;padding-left:15px;padding-right:15px;font-size:.9em;cursor:pointer;border-radius:2px}a.btn{text-decoration:none;font-weight:bold}.btn-small{padding:2px;padding-left:5px;padding-right:5px}.btn-red{border-color:#b0281a;background:#d14836;color:#fff}a.btn-red:hover,.btn-red:hover,.btn-red:focus{color:#fff;background:#c53727}a.btn-blue,.btn-blue{border-color:#3079ed;background:#4d90fe;color:#fff}a.btn-blue:hover,.btn-blue:hover,a.btn-blue:focus,.btn-blue:focus{border-color:#2f5bb7;background:#357ae8}.btn-blue:disabled{color:#ccc;border:1px solid #ccc;background:#f7f7f7}#main .alert,.page .alert{margin-top:10px}.alert{padding:8px 35px 8px 14px;margin-bottom:10px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5;border-radius:4px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-normal{color:#333;background-color:#f0f0f0;border-color:#ddd}.alert ul{margin-top:10px;margin-bottom:10px}.alert li{margin-left:25px}.alert-fade-out{position:fixed;bottom:0;left:0;width:100%;font-size:1.1em;padding-top:15px;padding-bottom:15px;margin-bottom:0;border-width:1px 0 0;border-radius:0;z-index:9999}.tooltip-arrow:after{background:#fff;border:1px solid #aaa;box-shadow:0 0 5px #aaa}div.ui-tooltip{min-width:200px;max-width:600px;font-size:.85em}.tooltip-arrow{width:20px;height:10px;overflow:hidden;position:absolute}.tooltip-arrow.top{top:-10px}.tooltip-arrow.bottom{bottom:-10px}.tooltip-arrow.align-left{left:10px}.tooltip-arrow.align-right{right:10px}.tooltip-arrow:after{content:"";position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.tooltip-arrow.bottom:after{top:-10px}.tooltip-arrow.top:after{bottom:-10px}.tooltip-arrow.align-left:after{left:0}.tooltip-arrow.align-right:after{right:0}.tooltip-large{width:550px}.ui-tooltip-content .markdown p{margin-bottom:0}.tooltip .fa-info-circle{color:#999;font-size:.95em}.ui-tooltip ul{margin-left:20px}.ui-tooltip dl{margin:-5px 0 0 0;padding:0}.ui-tooltip dt{margin-top:5px}.ui-tooltip dd{margin-left:0}.ui-tooltip .progress{display:inline-block;min-width:3em;text-align:right}header{margin-top:10px;padding-bottom:10px;border-bottom:1px solid #dedede}header h1{margin:0;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%;float:left}header ul{text-align:right;font-size:.9em}header li{display:inline;padding-left:30px}header a{color:#777;text-decoration:none}nav .active a{color:#333;font-weight:bold}.logo a{opacity:.5;color:#d40000}.logo span{color:#333}.logo a:hover{opacity:.8;color:#333}.logo a:focus span,.logo a:hover span{color:#d40000}header .user-links .dropdown{margin-left:15px}header h1 .tooltip{opacity:.3;font-size:.6em}.page-header{margin-bottom:20px}.page-header h2{margin:0;padding:0;font-size:1.4em;font-weight:bold;border-bottom:1px dotted #ccc}.page-header h2 a{color:#333;text-decoration:none}.page-header h2 a:focus,.page-header h2 a:hover{color:#aaa}.page-header ul{text-align:left;margin-top:5px;display:inline-block}.menu-inline li,.page-header li{display:inline;padding-right:15px;font-size:.95em}.page-header li.active a{color:#333;text-decoration:none;font-weight:bold}.page-header li.active a:hover,.page-header li.active a:focus{text-decoration:underline}.menu-inline{margin-bottom:5px}@media only screen and (max-width:640px){.page-header-mobile li{display:block;margin-bottom:5px}}.public-board{margin-top:5px}.public-task{max-width:800px;margin:0 auto;margin-top:5px}#board-container{overflow-x:auto}#board{table-layout:fixed;margin-bottom:0}#board th.board-column-header{width:240px}#board td{vertical-align:top}.board-container-compact{overflow-x:initial}@media all and (-ms-high-contrast:active),(-ms-high-contrast:none){.board-container-compact #board{table-layout:auto}}#board th.board-column-header.board-column-compact{width:initial}.board-column-collapsed{display:none}td.board-column-task-collapsed{font-weight:bold;background-color:#fbfbfb}#board th.board-column-header-collapsed{width:28px;min-width:28px;text-align:center;overflow:hidden}.board-rotation-wrapper{position:relative;padding:8px 4px;min-height:150px;overflow:hidden}.board-rotation{white-space:nowrap;-webkit-backface-visibility:hidden;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%}.board-column-title .dropdown-menu{text-decoration:none}.board-add-icon{float:left;padding:0 5px}.board-add-icon a{text-decoration:none;color:#36c;font-size:150%;line-height:70%}.board-add-icon a:focus,.board-add-icon a:hover{text-decoration:none;color:red}.board-column-header-task-count{color:#999;font-weight:normal}th.board-column-header-collapsed .board-column-header-task-count{font-size:.85em}a.board-swimlane-toggle{font-size:.95em;text-decoration:none}a.board-swimlane-toggle:hover,a.board-swimlane-toggle:focus{color:#000;text-decoration:none;border:0}.board-task-list{overflow:auto;min-height:60px}.board-task-list-limit{background-color:#df5353}.draggable-item{cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none}.draggable-placeholder{border:2px dashed #000;background:#fafafa;height:70px;margin-bottom:10px}div.draggable-item-selected{border:1px solid #000}.task-board-sort-handle{float:left;padding-right:5px}.task-board-saving-state{opacity:.3}.task-board-saving-icon{position:absolute;margin:auto;width:100%;text-align:center;color:#000}.task-board{position:relative;margin-bottom:4px;border:1px solid #000;padding:2px;font-size:.85em;word-wrap:break-word}div.task-board-recent{border-width:2px}div.task-board-status-closed{user-select:none;border:1px dotted #555}.task-table a,.task-board a{color:#000;text-decoration:none;font-weight:bold}.task-table a:focus,.task-table a:hover,.task-board a:focus,.task-board a:hover{text-decoration:underline}.task-board-collapsed{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}a.task-board-collapsed-title{font-weight:normal}.task-board .dropdown{font-size:1.1em}.task-board-title{margin-top:5px;margin-bottom:5px;font-size:1.1em}.task-board-title a{font-weight:normal}.task-board-user{font-size:.8em}.task-board-current-user a{text-decoration:underline}.task-board-current-user a:focus,.task-board-current-user a:hover{text-decoration:none}a.task-board-nobody{font-weight:normal;font-style:italic;color:#444}.task-board-category-container{text-align:right}.task-board-category{font-weight:bold;font-size:.9em;color:#000;border:1px solid #555;padding:2px;padding-right:5px;padding-left:5px}.task-board-icons{text-align:right;margin-top:8px}.task-board-icons a{opacity:.5}.task-board-icons span{opacity:.5;margin-left:2px}.task-board-icons a:hover,.task-board-icons span:hover{opacity:1.0}.task-board-date{font-weight:bold;color:#000}span.task-board-date-overdue{color:#d90000;opacity:1.0}.task-board .task-score{font-weight:bold;font-size:1.1em}.task-board-closed,.task-board-days{position:absolute;right:5px;top:5px;opacity:.5;font-size:.8em}.task-board-days:hover{opacity:1.0}.task-days-age{border:#666 1px solid;padding:1px 4px 1px 2px;border-top-left-radius:3px;border-bottom-left-radius:3px}.task-days-incolumn{border:#666 1px solid;border-left:0;margin-left:-5px;padding:1px 2px 1px 4px;border-top-right-radius:3px;border-bottom-right-radius:3px}.board-container-compact .task-board-days{display:none}#task-summary{margin-bottom:15px}#task-summary h2{color:#666;font-size:2.5em;margin-top:0;padding-top:0}.task-summary-container{border:2px solid #000;border-radius:8px;padding:15px;display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-justify-content:space-between;justify-content:space-between}.task-summary-column{font-size:.9em;color:#666}.task-summary-column span{color:#555}.task-summary-column li{line-height:23px}.task-show-description{border-left:4px solid #333;padding-left:20px}.task-show-description-textarea{width:99%;max-width:99%;height:300px}.task-link-closed{text-decoration:line-through}.flag-milestone{color:green}.color-picker{min-height:35px}.color-square{display:inline-block;width:30px;height:30px;margin-right:5px;margin-bottom:5px;border:1px solid #000;cursor:pointer}.color-square:hover{border-style:dotted}div.color-square-selected{border-width:2px;width:28px;height:28px;box-shadow:3px 2px 10px 0 rgba(180,180,180,0.9)}.assign-me{font-size:.8em;vertical-align:bottom}.comment{margin-bottom:20px}.comment:hover{background:#f7f8e0}.comment-inner{border-left:4px solid #333;padding-bottom:10px;padding-left:20px;margin-left:20px;margin-right:10px}.comment-preview{border:2px solid #000;border-radius:3px;padding:10px}.comment-preview .comment-inner{border:0;padding:0;margin:0}.comment-title{margin-bottom:8px;padding-bottom:3px;border-bottom:1px dotted #aaa}.ui-tooltip .comment-title{font-size:80%}.ui-tooltip .comment-inner{padding-bottom:0}.comment-actions{font-size:.8em;padding:0;text-align:right}.comment-actions li{display:inline;padding-left:5px;padding-right:5px;border-right:1px dotted #000}.comment-actions li:last-child{padding-right:0;border:0}.comment-username{font-weight:bold}.comment-textarea{height:200px;width:80%;max-width:800px}.comment-sorting{font-size:.5em}span.comment-sorting a{color:#555;font-weight:normal;text-decoration:none}span.comment-sorting a:hover{color:#aaa}#comments .comment-textarea{height:80px;width:500px}.subtasks-table{font-size:.85em}.subtasks-table td{vertical-align:middle}.markdown{line-height:1.4em;font-size:1.0}.markdown h1{margin-top:5px;margin-bottom:10px;font-size:1.5em;font-weight:bold;text-decoration:underline}.markdown h2{font-size:1.2em;font-weight:bold;text-decoration:underline}.markdown h3{font-size:1.1em;text-decoration:underline}.markdown h4{font-size:1.1em;text-decoration:underline}.markdown p{margin-bottom:10px}.markdown ol,.markdown ul{margin-left:25px;margin-top:10px;margin-bottom:10px}.markdown pre{background:#fbfbfb;padding:10px;border-radius:5px;border:1px solid #ddd;overflow:auto;color:#444}.markdown blockquote{font-style:italic;border-left:3px solid #ddd;padding-left:10px;margin-bottom:10px;margin-left:20px}.markdown img{display:block;max-width:80%;margin-top:10px}.documentation{margin:0 auto;padding:20px;max-width:850px;background:#fefefe;border:1px solid #ccc;border-radius:5px;font-size:1.1em;color:#555}.documentation img{border:1px solid #333}.documentation h1{text-decoration:none;font-size:1.8em;margin-bottom:30px}.documentation h2{font-size:1.3em;text-decoration:none;border-bottom:1px solid #ccc;margin-bottom:25px}.documentation li{line-height:30px}.user-mention-link{font-weight:bold;color:#000;text-decoration:none}.user-mention-link:hover{color:#555}.listing{border-radius:4px;padding:8px 35px 8px 14px;margin-bottom:20px;border:1px solid #ddd;color:#333;background-color:#fcfcfc;overflow:auto}.listing li{list-style-type:square;margin-left:20px;margin-bottom:3px}.listing ul{margin-top:15px;margin-bottom:15px}.activity-event{margin-bottom:20px}.activity-datetime{color:#999;font-size:.85em}.activity-content{margin-top:10px;margin-left:20px;padding-left:20px;border-left:2px solid #666}.activity-title{font-weight:bold;color:#000}.activity-description{font-size:.9em;color:#aaa;padding-top:5px}.activity-description ul{margin-top:10px}.activity-description li{margin-left:40px;list-style-type:circle;color:#555}.activity-description .markdown{margin-top:10px;color:#555}.activity-changes{margin-top:10px;font-size:.85em}.activity-changes ul{margin-left:25px}.dashboard-project-stats span{font-size:.75em;margin-right:10px;color:#999}.dashboard-project-stats strong{font-size:1.2em}.dashboard-table-link{font-weight:bold;color:#444;text-decoration:none}.dashboard-table-link:focus,.dashboard-table-link:hover{color:#999}.pagination{text-align:center}.pagination-next{margin-left:5px}.pagination-previous{margin-right:5px}#popover-container{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.8);overflow:auto;z-index:100}#popover-content{position:absolute;width:70%;margin:0 0 0 -35%;left:50%;top:1%;padding:15px;background:#fff;overflow:auto;max-height:85%}#main .confirm{max-width:700px;font-size:1.1em}.sidebar-container{margin-top:10px;height:100%;width:100%;display:-ms-flexbox;display:-webkit-box;display:-moz-box;display:-ms-box;display:box;-ms-flex-direction:row;-webkit-box-orient:horizontal;-moz-box-orient:horizontal;-ms-box-orient:horizontal;box-orient:horizontal}.sidebar-content{padding-left:10px;-ms-flex:1;-webkit-box-flex:1;-moz-box-flex:1;-ms-box-flex:1;box-flex:1}.sidebar{padding-right:10px;border-right:1px dotted #eee;font-size:.95em;max-width:240px;min-width:190px;width:18%;-ms-flex:0 100px;-webkit-box-flex:0;-moz-box-flex:0;-ms-box-flex:0;box-flex:0}.sidebar h2{margin-top:0}.sidebar a{text-decoration:none}.sidebar li{list-style-type:none;line-height:35px;border-bottom:1px dotted #efefef;padding-left:13px}.sidebar li:hover{border-left:5px solid #555;padding-left:8px}.sidebar li.active{border-left:5px solid #333;padding-left:8px}.sidebar li.active a{color:#333;font-weight:bold}.sidebar li.active a:focus,.sidebar li.active a:hover{color:#555}@media only screen and (max-width:1024px){body{font-size:.85em}.form-tab{max-width:404px}.form-inline-group input[type="submit"],.form-inline-group label{display:block}.form-inline-group input[type="submit"]{margin-top:20px}td>input[type="text"]{max-width:150px}.page-header .form-input-large{width:300px}}@media only screen and (max-width:1024px) and (orientation:landscape){header{padding-bottom:4px}div.chosen-container{font-size:.9em}input[type="number"],input[type="date"],input[type="email"],input[type="password"],input[type="text"]{height:18px}.page-header .form-input-large{width:300px}}@media only screen and (max-width:640px){.hide-mobile{display:none}}.dropdown{display:inline;position:relative}.dropdown ul{display:none}ul.dropdown-submenu-open{display:block;position:absolute;z-index:1000;min-width:285px;list-style:none;margin:3px 0 0 1px;padding:6px 0;background-color:#fff;border:1px solid #b2b2b2;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,0.15)}.textarea-dropdown li,.dropdown-submenu-open li{display:block;margin:0;padding:0;padding-left:10px;padding-right:10px;padding-top:8px;padding-bottom:8px;font-size:.85em;border-bottom:1px solid #f8f8f8;cursor:pointer}.dropdown-submenu-open li.no-hover{cursor:default}.textarea-dropdown li:last-child,.dropdown-submenu-open li:last-child{border:0}.textarea-dropdown .active,.textarea-dropdown li:hover,.dropdown-submenu-open li:not(.no-hover):hover{background:#4078c0;color:#fff}.textarea-dropdown .active a,.textarea-dropdown li:hover a,.dropdown-submenu-open li:hover a{color:#fff}.textarea-dropdown a,.dropdown-submenu-open a{text-decoration:none;color:#333}.dropdown-submenu-open a:focus{text-decoration:underline}.page-header .dropdown{padding-right:10px}.dropdown-menu-link-text,.dropdown-menu-link-icon{color:#333;text-decoration:none}.dropdown-menu-link-text:hover{text-decoration:underline}.textarea-dropdown{list-style:none;margin:3px 0 0 1px;padding:6px 0;background-color:#fff;border:1px solid #b2b2b2;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,0.15)}#file-dropzone,#screenshot-zone{position:relative;border:2px dashed #ccc;width:99%;height:250px;overflow:auto}#file-dropzone-inner,#screenshot-inner{position:absolute;left:0;bottom:48%;width:100%;text-align:center;color:#aaa}#screenshot-zone.screenshot-pasted{border:2px solid #333}#file-list{margin:20px}#file-list li{list-style-type:none;padding-top:8px;padding-bottom:8px;border-bottom:1px dotted #ddd;width:95%}#file-list li.file-error{font-weight:bold;color:#b94a48}.project-header{margin-top:8px;margin-bottom:20px}.filter-box{display:inline-block;position:relative;font-size:0;margin-bottom:20px}.project-header .filter-box{margin:0}.filter-box form{margin:0}.filter-box input[type="text"]{margin:0;font-size:16px;height:26px;border-color:#dedede;border-top-left-radius:5px;border-bottom-left-radius:5px;vertical-align:top}.filter-box input[type="text"]:focus{color:#000;border-color:rgba(82,168,236,0.8);outline:0;box-shadow:0 0 8px rgba(82,168,236,0.6)}.filter-box div.dropdown{display:inline-block;font-size:16px;border:1px solid #dedede;border-left:0;margin:0;padding:0;padding-left:5px;padding-right:8px;height:27px}.filter-box div.dropdown:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.filter-box div.dropdown a{line-height:27px}div.ganttview-hzheader-month,div.ganttview-hzheader-day,div.ganttview-vtheader,div.ganttview-vtheader-item-name,div.ganttview-vtheader-series,div.ganttview-grid,div.ganttview-grid-row-cell{float:left}div.ganttview-hzheader-month,div.ganttview-hzheader-day{text-align:center}div.ganttview-grid-row-cell.last,div.ganttview-hzheader-day.last,div.ganttview-hzheader-month.last{border-right:0}div.ganttview{border:1px solid #999}div.ganttview-hzheader-month{width:60px;height:20px;border-right:1px solid #d0d0d0;line-height:20px;overflow:hidden}div.ganttview-hzheader-day{width:20px;height:20px;border-right:1px solid #f0f0f0;border-top:1px solid #d0d0d0;line-height:20px;color:#777}div.ganttview-vtheader{margin-top:41px;width:400px;overflow:hidden;background-color:#fff}div.ganttview-vtheader-item{color:#666}div.ganttview-vtheader-series-name{width:400px;height:31px;line-height:31px;padding-left:3px;border-top:1px solid #d0d0d0;font-size:.9em;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}div.ganttview-vtheader-series-name a{color:#666;text-decoration:none}div.ganttview-vtheader-series-name a:hover{color:#333;text-decoration:underline}div.ganttview-vtheader-series-name a i{color:#000}div.ganttview-vtheader-series-name a:hover i{color:#666}div.ganttview-slide-container{overflow:auto;border-left:1px solid #999}div.ganttview-grid-row-cell{width:20px;height:31px;border-right:1px solid #f0f0f0;border-top:1px solid #f0f0f0}div.ganttview-grid-row-cell.ganttview-weekend{background-color:#fafafa}div.ganttview-blocks{margin-top:40px}div.ganttview-block-container{height:28px;padding-top:4px}div.ganttview-block{position:relative;height:25px;background-color:#e5ecf9;border:1px solid silver;border-radius:3px}.ganttview-block-movable{cursor:move}div.ganttview-block-not-defined{border-color:#000;background-color:#000}div.ganttview-block-text{position:absolute;height:12px;font-size:.7em;color:#999;padding:2px 3px}div.ganttview-block div.ui-resizable-handle.ui-resizable-s{bottom:-0}.project-creation-options{max-width:500px;border-left:3px dotted #efefef;margin-top:20px;padding-left:15px;padding-bottom:5px;padding-top:5px}.project-overview-columns{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;margin-bottom:20px;font-size:1.4em}.project-overview-column{text-align:center;margin-right:80px}.project-overview-column strong{font-size:1.3em;color:#444}.project-overview-column span{font-size:.8em;color:#777}.file-thumbnails{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-justify-content:flex-start;justify-content:flex-start}.file-thumbnail{width:250px;border:1px solid #efefef;border-radius:5px;margin-bottom:20px;box-shadow:4px 2px 10px -6px rgba(0,0,0,0.55);margin-right:15px}.file-thumbnail img{border-top-left-radius:5px;border-top-right-radius:5px}.file-thumbnail img:hover{opacity:.5}.file-thumbnail-content{padding-left:8px;padding-right:8px}.file-thumbnail-title{font-weight:700;font-size:.9em;color:#555}.file-thumbnail-description{font-size:.8em;color:#aaa;margin-top:8px;margin-bottom:5px}.file-viewer{position:relative}.file-viewer img{max-width:95%;max-height:85%;margin-top:10px}.views{display:inline-block;margin-left:10px;margin-right:10px;font-size:.9em}.views li{border:1px solid #eee;padding-left:8px;padding-right:8px;padding-top:5px;padding-bottom:5px;display:inline}.menu-inline li.active a,.views li.active a{font-weight:bold;color:#000;text-decoration:none}.views li:first-child{border-right:0;border-top-left-radius:5px;border-bottom-left-radius:5px}.views li:last-child{border-left:0;border-top-right-radius:5px;border-bottom-right-radius:5px} \ No newline at end of file
diff --git a/assets/css/src/alert.css b/assets/css/src/alert.css
index 0a5a35ee..2cde8220 100644
--- a/assets/css/src/alert.css
+++ b/assets/css/src/alert.css
@@ -45,3 +45,17 @@
.alert li {
margin-left: 25px;
}
+
+.alert-fade-out {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ font-size: 1.1em;
+ padding-top: 15px;
+ padding-bottom: 15px;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+ border-radius: 0;
+ z-index: 9999;
+}
diff --git a/assets/css/src/form.css b/assets/css/src/form.css
index e42b345b..22dcb412 100644
--- a/assets/css/src/form.css
+++ b/assets/css/src/form.css
@@ -180,6 +180,10 @@ input.form-input-large {
font-weight: bold;
}
+.popover-form {
+ margin-bottom: 0;
+}
+
/* preview tabs */
label + .form-tabs {
margin-top: 10px;
diff --git a/assets/js/app.js b/assets/js/app.js
index 027e3d9a..c119ffe9 100644
--- a/assets/js/app.js
+++ b/assets/js/app.js
@@ -1278,4 +1278,4 @@ if (typeof jQuery === 'undefined') {
return jQuery;
}));
-!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a){return a>1&&5>a&&1!==~~(a/10)}function d(a,b,d,e){var f=a+" ";switch(d){case"s":return b||e?"pár sekund":"pár sekundami";case"m":return b?"minuta":e?"minutu":"minutou";case"mm":return b||e?f+(c(a)?"minuty":"minut"):f+"minutami";case"h":return b?"hodina":e?"hodinu":"hodinou";case"hh":return b||e?f+(c(a)?"hodiny":"hodin"):f+"hodinami";case"d":return b||e?"den":"dnem";case"dd":return b||e?f+(c(a)?"dny":"dní"):f+"dny";case"M":return b||e?"měsíc":"měsícem";case"MM":return b||e?f+(c(a)?"měsíce":"měsíců"):f+"měsíci";case"y":return b||e?"rok":"rokem";case"yy":return b||e?f+(c(a)?"roky":"let"):f+"lety"}}var e="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),f="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");(b.defineLocale||b.lang).call(b,"cs",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(e,f),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("cs","cs",{closeText:"Zavřít",prevText:"&#x3C;Dříve",nextText:"Později&#x3E;",currentText:"Nyní",monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","čt","pá","so"],dayNamesMin:["ne","po","út","st","čt","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("cs",{buttonText:{month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den",eventLimitText:function(a){return"+další: "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("da","da",{closeText:"Luk",prevText:"&#x3C;Forrige",nextText:"Næste&#x3E;",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("da",{buttonText:{month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"flere"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,"de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT [Uhr]",sameElse:"L",nextDay:"[Morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[Gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:c,mm:"%d Minuten",h:c,hh:"%d Stunden",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("de","de",{closeText:"Schließen",prevText:"&#x3C;Zurück",nextText:"Vor&#x3E;",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("de",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(a){return"+ weitere "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),d="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");(b.defineLocale||b.lang).call(b,"es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("es","es",{closeText:"Cerrar",prevText:"&#x3C;Ant",nextText:"Sig&#x3E;",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("es",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo<br/>el día",eventLimitText:"más"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("el","el",{closeText:"Κλείσιμο",prevText:"Προηγούμενος",nextText:"Επόμενος",currentText:"Σήμερα",monthNames:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthNamesShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dayNames:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],dayNamesShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayNamesMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("el",{buttonText:{month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},allDayText:"Ολοήμερο",eventLimitText:"περισσότερα"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,e){var f="";switch(c){case"s":return e?"muutaman sekunnin":"muutama sekunti";case"m":return e?"minuutin":"minuutti";case"mm":f=e?"minuutin":"minuuttia";break;case"h":return e?"tunnin":"tunti";case"hh":f=e?"tunnin":"tuntia";break;case"d":return e?"päivän":"päivä";case"dd":f=e?"päivän":"päivää";break;case"M":return e?"kuukauden":"kuukausi";case"MM":f=e?"kuukauden":"kuukautta";break;case"y":return e?"vuoden":"vuosi";case"yy":f=e?"vuoden":"vuotta"}return f=d(a,e)+" "+f}function d(a,b){return 10>a?b?f[a]:e[a]:a}var e="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),f=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",e[7],e[8],e[9]];(b.defineLocale||b.lang).call(b,"fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("fi","fi",{closeText:"Sulje",prevText:"&#xAB;Edellinen",nextText:"Seuraava&#xBB;",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fi",{buttonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä",eventLimitText:"lisää"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fr",{buttonText:{month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function d(a){return(a?"":"[múlt] ")+"["+e[this.day()]+"] LT[-kor]"}var e="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");(b.defineLocale||b.lang).call(b,"hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return d.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return d.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),a.fullCalendar.lang("hu",{buttonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap",eventLimitText:"további"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"LT.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("id","id",{closeText:"Tutup",prevText:"&#x3C;mundur",nextText:"maju&#x3E;",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("id",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayHtml:"Sehari<br/>penuh",eventLimitText:"lebih"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("it","it",{closeText:"Chiudi",prevText:"&#x3C;Prec",nextText:"Succ&#x3E;",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("it",{buttonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayHtml:"Tutto il<br/>giorno",eventLimitText:function(a){return"+altri "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"LTs秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日LT",LLLL:"YYYY年M月D日LT dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),a.fullCalendar.datepickerLang("ja","ja",{closeText:"閉じる",prevText:"&#x3C;前",nextText:"次&#x3E;",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),a.fullCalendar.lang("ja",{buttonText:{month:"月",week:"週",day:"日",list:"予定リスト"},allDayText:"終日",eventLimitText:function(a){return"他 "+a+" 件"}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),d="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");(b.defineLocale||b.lang).call(b,"nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("nl","nl",{closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nl",{buttonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",LTS:"LT.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("nb","nb",{closeText:"Lukk",prevText:"&#xAB;Forrige",nextText:"Neste&#xBB;",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nb",{buttonText:{month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"til"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function d(a,b,d){var e=a+" ";switch(d){case"m":return b?"minuta":"minutę";case"mm":return e+(c(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return e+(c(a)?"godziny":"godzin");case"MM":return e+(c(a)?"miesiące":"miesięcy");case"yy":return e+(c(a)?"lata":"lat")}}var e="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),f="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");(b.defineLocale||b.lang).call(b,"pl",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:d,mm:d,h:d,hh:d,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:d,y:"rok",yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("pl","pl",{closeText:"Zamknij",prevText:"&#x3C;Poprzedni",nextText:"Następny&#x3E;",currentText:"Dziś",monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Śr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Śr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pl",{buttonText:{month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},allDayText:"Cały dzień",eventLimitText:"więcej"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia",eventLimitText:"mais"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] LT",LLLL:"dddd, D [de] MMMM [de] YYYY [às] LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"}),a.fullCalendar.datepickerLang("pt-br","pt-BR",{closeText:"Fechar",prevText:"&#x3C;Anterior",nextText:"Próximo&#x3E;",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt-br",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro",eventLimitText:function(a){return"mais +"+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===d?b?"минута":"минуту":a+" "+c(e[d],+a)}function e(a,b){var c={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function f(a,b){var c={nominative:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function g(a,b){var c={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},d=/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}(b.defineLocale||b.lang).call(b,"ru",{months:e,monthsShort:f,weekdays:g,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:d,mm:d,h:"час",hh:d,d:"день",dd:d,M:"месяц",MM:d,y:"год",yy:d},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("ru","ru",{closeText:"Закрыть",prevText:"&#x3C;Пред",nextText:"След&#x3E;",currentText:"Сегодня",monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Нед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ru",{buttonText:{month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},allDayText:"Весь день",eventLimitText:function(a){return"+ ещё "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("sv","sv",{closeText:"Stäng",prevText:"&#xAB;Förra",nextText:"Nästa&#xBB;",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","Må","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sv",{buttonText:{month:"Månad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag",eventLimitText:"till"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+" "+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,"sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:"dan",dd:c.translate,M:"mesec",MM:c.translate,y:"godinu",yy:c.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("sr","sr",{closeText:"Затвори",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sr",{buttonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(a){return"+ још "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",LTS:"LT s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:"วันddddที่ D MMMM YYYY เวลา LT"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),a.fullCalendar.datepickerLang("th","th",{closeText:"ปิด",prevText:"&#xAB;&#xA0;ย้อน",nextText:"ถัดไป&#xA0;&#xBB;",currentText:"วันนี้",monthNames:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthNamesShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("th",{buttonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};(b.defineLocale||b.lang).call(b,"tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,d=a%100-b,e=a>=100?100:null;return a+(c[b]||c[d]||c[e])},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("tr","tr",{closeText:"kapat",prevText:"&#x3C;geri",nextText:"ileri&#x3e",currentText:"bugün",monthNames:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("tr",{buttonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün",eventLimitText:"daha fazla"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var a,c;return a=b().startOf("week"),c=this.unix()-a.unix()>=604800?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var a,c;return a=b().startOf("week"),c=this.unix()<a.unix()?"[上]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},sameElse:"LL"},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("zh-cn","zh-CN",{closeText:"关闭",prevText:"&#x3C;上月",nextText:"下月&#x3E;",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),a.fullCalendar.lang("zh-cn",{buttonText:{month:"月",week:"周",day:"日",list:"日程"},allDayText:"全天",eventLimitText:function(a){return"另外 "+a+" 个"}})});(function(){function u(z){this.app=z;this.router=new x();this.router.addRoute("screenshot-zone",d)}u.prototype.isOpen=function(){return $("#popover-container").size()>0};u.prototype.open=function(A){var z=this;z.app.dropdown.close();$.get(A,function(B){$("body").prepend('<div id="popover-container"><div id="popover-content">'+B+"</div></div>");z.app.refresh();z.router.dispatch(this.app);z.afterOpen()})};u.prototype.close=function(z){if(this.isOpen()){if(z){z.preventDefault()}$("#popover-container").remove()}};u.prototype.onClick=function(B){B.preventDefault();B.stopPropagation();var A=B.currentTarget||B.target;var z=A.getAttribute("href");if(!z){z=A.getAttribute("data-href")}if(z){this.open(z)}};u.prototype.listen=function(){$(document).on("click",".popover",this.onClick.bind(this));$(document).on("click",".close-popover",this.close.bind(this));$(document).on("click","#popover-container",this.close.bind(this));$(document).on("click","#popover-content",function(z){z.stopPropagation()})};u.prototype.afterOpen=function(){var A=this;var z=$("#popover-content .popover-form");if(z){z.on("submit",function(B){B.preventDefault();$.ajax({type:"POST",url:z.attr("action"),data:z.serialize(),success:function(D,E,C){A.afterSubmit(D,C,A)},beforeSend:function(){var C=$('.popover-form button[type="submit"]');C.html('<i class="fa fa-spinner fa-pulse"></i> '+C.html());C.attr("disabled",true)}})})}$(document).on("click",".popover-link",function(B){B.preventDefault();$.ajax({type:"GET",url:$(this).attr("href"),success:function(D,E,C){A.afterSubmit(D,C,A)}})})};u.prototype.afterSubmit=function(B,A,z){var C=A.getResponseHeader("X-Ajax-Redirect");if(C){window.location=C==="self"?window.location.href.split("#")[0]:C}else{$("#popover-content").html(B);$("#popover-content input[autofocus]").focus();z.afterOpen()}};function s(){}s.prototype.listen=function(){var z=this;$(document).on("click",function(){z.close()});$(document).on("click",".dropdown-menu",function(D){D.preventDefault();D.stopImmediatePropagation();z.close();var B=$(this).next("ul");var E=$(this).offset();$("body").append(jQuery("<div>",{id:"dropdown"}));B.clone().appendTo("#dropdown");var F=$("#dropdown ul");F.addClass("dropdown-submenu-open");var C=F.outerHeight();var A=F.outerWidth();if(E.top+C-$(window).scrollTop()<$(window).height()||$(window).scrollTop()+E.top<C){F.css("top",E.top+$(this).height())}else{F.css("top",E.top-C-5)}if(E.left+A>$(window).width()){F.css("left",E.left-A+$(this).outerWidth())}else{F.css("left",E.left)}});$(document).on("click",".dropdown-submenu-open li",function(A){if($(A.target).is("li")){$(this).find("a:visible")[0].click()}});$("textarea[data-mention-search-url]").textcomplete([{match:/(^|\s)@(\w*)$/,search:function(B,C){var A=$("textarea[data-mention-search-url]").data("mention-search-url");$.getJSON(A,{q:B}).done(function(D){C(D)}).fail(function(){C([])})},replace:function(A){return"$1@"+A+" "},cache:true}],{className:"textarea-dropdown"})};s.prototype.close=function(){$("#dropdown").remove()};function r(z){this.app=z}r.prototype.listen=function(){var z=this;$(".tooltip").tooltip({track:false,show:false,hide:false,position:{my:"left-20 top",at:"center bottom+9",using:function(A,B){$(this).css(A);var C=B.target.left+B.target.width/2-B.element.left-20;$("<div>").addClass("tooltip-arrow").addClass(B.vertical).addClass(C<1?"align-left":"align-right").appendTo(this)}},content:function(){var C=this;var A=$(this).attr("data-href");if(!A){return'<div class="markdown">'+$(this).attr("title")+"</div>"}$.get(A,function B(F){var E=$(".ui-tooltip:visible");$(".ui-tooltip-content:visible").html(F);E.css({top:"",left:""});E.children(".tooltip-arrow").remove();var D=$(C).tooltip("option","position");D.of=$(C);E.position(D)});return'<i class="fa fa-spinner fa-spin"></i>'}}).on("mouseenter",function(){var A=this;$(this).tooltip("open");$(".ui-tooltip").on("mouseleave",function(){$(A).tooltip("close")})}).on("mouseleave focusout",function(A){A.stopImmediatePropagation();var B=this;setTimeout(function(){if(!$(".ui-tooltip:hover").length){$(B).tooltip("close")}},100)})};function m(){}m.prototype.showPreview=function(D){D.preventDefault();var A=$(".write-area");var C=$(".preview-area");var z=$("textarea");$("#markdown-write").parent().removeClass("form-tab-selected");$("#markdown-preview").parent().addClass("form-tab-selected");var B=$.ajax({url:$("body").data("markdown-preview-url"),contentType:"application/json",type:"POST",processData:false,dataType:"html",data:JSON.stringify({text:z.val()})});B.done(function(E){C.find(".markdown").html(E);C.css("height",z.css("height"));C.css("width",z.css("width"));A.hide();C.show()})};m.prototype.showWriter=function(z){z.preventDefault();$("#markdown-write").parent().addClass("form-tab-selected");$("#markdown-preview").parent().removeClass("form-tab-selected");$(".write-area").show();$(".preview-area").hide()};m.prototype.listen=function(){$(document).on("click","#markdown-preview",this.showPreview.bind(this));$(document).on("click","#markdown-write",this.showWriter.bind(this))};function f(z){this.app=z;this.keyboardShortcuts()}f.prototype.focus=function(){$(document).on("focus","#form-search",function(){if($("#form-search")[0].setSelectionRange){$("#form-search")[0].setSelectionRange($("#form-search").val().length,$("#form-search").val().length)}})};f.prototype.listen=function(){var z=this;$(document).on("click",".filter-helper",function(C){C.preventDefault();var B=$(this).data("filter");var A=$(this).data("append-filter");if(A){B=$("#form-search").val()+" "+A}$("#form-search").val(B);if($("#board").length){z.app.board.reloadFilters(B)}else{$("form.search").submit()}})};f.prototype.keyboardShortcuts=function(){var z=this;Mousetrap.bind("v o",function(B){var A=$(".view-overview");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v b",function(B){var A=$(".view-board");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v c",function(B){var A=$(".view-calendar");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v l",function(B){var A=$(".view-listing");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v g",function(B){var A=$(".view-gantt");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("f",function(B){B.preventDefault();var A=document.getElementById("form-search");if(A){A.focus()}});Mousetrap.bind("r",function(B){B.preventDefault();var A=$(".filter-reset").data("filter");$("#form-search").val(A);if($("#board").length){z.app.board.reloadFilters(A)}else{$("form.search").submit()}})};function n(){this.board=new k(this);this.markdown=new m();this.search=new f(this);this.swimlane=new g(this);this.dropdown=new s();this.tooltip=new r(this);this.popover=new u(this);this.task=new a(this);this.project=new o();this.subtask=new e(this);this.column=new l(this);this.file=new w(this);this.keyboardShortcuts();this.chosen();this.poll();$(".alert-fade-out").delay(4000).fadeOut(800,function(){$(this).remove()})}n.prototype.listen=function(){this.project.listen();this.popover.listen();this.markdown.listen();this.tooltip.listen();this.dropdown.listen();this.search.listen();this.task.listen();this.swimlane.listen();this.subtask.listen();this.column.listen();this.file.listen();this.search.focus();this.autoComplete();this.datePicker();this.focus()};n.prototype.refresh=function(){$(document).off();this.listen()};n.prototype.focus=function(){$("[autofocus]").each(function(z,A){$(this).focus()});$(document).on("focus",".auto-select",function(){$(this).select()});$(document).on("mouseup",".auto-select",function(z){z.preventDefault()})};n.prototype.poll=function(){window.setInterval(this.checkSession,60000)};n.prototype.keyboardShortcuts=function(){var z=this;Mousetrap.bindGlobal("mod+enter",function(){$("form").submit()});Mousetrap.bind("b",function(A){A.preventDefault();$("#board-selector").trigger("chosen:open")});Mousetrap.bindGlobal("esc",function(){z.popover.close();z.dropdown.close()})};n.prototype.checkSession=function(){if(!$(".form-login").length){$.ajax({cache:false,url:$("body").data("status-url"),statusCode:{401:function(){window.location=$("body").data("login-url")}}})}};n.prototype.datePicker=function(){$.datepicker.setDefaults($.datepicker.regional[$("body").data("js-lang")]);$(".form-date").datepicker({showOtherMonths:true,selectOtherMonths:true,dateFormat:"yy-mm-dd",constrainInput:false});$(".form-datetime").datetimepicker({controlType:"select",oneLine:true,dateFormat:"yy-mm-dd",constrainInput:false})};n.prototype.autoComplete=function(){$(".autocomplete").each(function(){var A=$(this);var B=A.data("dst-field");var z=A.data("dst-extra-field");if($("#form-"+B).val()==""){A.parent().find("input[type=submit]").attr("disabled","disabled")}A.autocomplete({source:A.data("search-url"),minLength:1,select:function(C,D){$("input[name="+B+"]").val(D.item.id);if(z){$("input[name="+z+"]").val(D.item[z])}A.parent().find("input[type=submit]").removeAttr("disabled")}})})};n.prototype.chosen=function(){$(".chosen-select").each(function(){var z=$(this).data("search-threshold");if(z===undefined){z=10}$(this).chosen({width:"180px",no_results_text:$(this).data("notfound"),disable_search_threshold:z})});$(".select-auto-redirect").change(function(){var z=new RegExp($(this).data("redirect-regex"),"g");window.location=$(this).data("redirect-url").replace(z,$(this).val())})};n.prototype.showLoadingIcon=function(){$("body").append('<span id="app-loading-icon">&nbsp;<i class="fa fa-spinner fa-spin"></i></span>')};n.prototype.hideLoadingIcon=function(){$("#app-loading-icon").remove()};n.prototype.isVisible=function(){var z="";if(typeof document.hidden!=="undefined"){z="visibilityState"}else{if(typeof document.mozHidden!=="undefined"){z="mozVisibilityState"}else{if(typeof document.msHidden!=="undefined"){z="msVisibilityState"}else{if(typeof document.webkitHidden!=="undefined"){z="webkitVisibilityState"}}}}if(z!=""){return document[z]=="visible"}return true};n.prototype.formatDuration=function(z){if(z>=86400){return Math.round(z/86400)+"d"}else{if(z>=3600){return Math.round(z/3600)+"h"}else{if(z>=60){return Math.round(z/60)+"m"}}}return z+"s"};function d(){this.pasteCatcher=null}d.prototype.execute=function(){this.initialize()};d.prototype.initialize=function(){this.destroy();if(!window.Clipboard){this.pasteCatcher=document.createElement("div");this.pasteCatcher.id="screenshot-pastezone";this.pasteCatcher.contentEditable="true";this.pasteCatcher.style.opacity=0;this.pasteCatcher.style.position="fixed";this.pasteCatcher.style.top=0;this.pasteCatcher.style.right=0;this.pasteCatcher.style.width=0;document.body.insertBefore(this.pasteCatcher,document.body.firstChild);this.pasteCatcher.focus();document.addEventListener("click",this.setFocus.bind(this));document.getElementById("screenshot-zone").addEventListener("click",this.setFocus.bind(this))}window.addEventListener("paste",this.pasteHandler.bind(this))};d.prototype.destroy=function(){if(this.pasteCatcher!=null){document.body.removeChild(this.pasteCatcher)}else{if(document.getElementById("screenshot-pastezone")){document.body.removeChild(document.getElementById("screenshot-pastezone"))}}document.removeEventListener("click",this.setFocus.bind(this));this.pasteCatcher=null};d.prototype.setFocus=function(){if(this.pasteCatcher!==null){this.pasteCatcher.focus()}};d.prototype.pasteHandler=function(E){if(E.clipboardData&&E.clipboardData.items){var C=E.clipboardData.items;if(C){for(var D=0;D<C.length;D++){if(C[D].type.indexOf("image")!==-1){var B=C[D].getAsFile();var z=new FileReader();var A=this;z.onload=function(F){A.createImage(F.target.result)};z.readAsDataURL(B)}}}}else{setTimeout(this.checkInput.bind(this),100)}};d.prototype.checkInput=function(){var z=this.pasteCatcher.childNodes[0];if(z){if(z.tagName==="IMG"){this.createImage(z.src)}}this.pasteCatcher.innerHTML=""};d.prototype.createImage=function(B){var A=new Image();A.src=B;A.onload=function(){var C=B.split("base64,");var D=C[1];$("input[name=screenshot]").val(D)};var z=document.getElementById("screenshot-zone");z.innerHTML="";z.className="screenshot-pasted";z.appendChild(A);this.destroy();this.initialize()};function w(z){this.app=z;this.files=[];this.currentFile=0}w.prototype.listen=function(){var z=document.getElementById("file-dropzone");var A=this;if(z){z.ondragover=z.ondragenter=function(B){B.stopPropagation();B.preventDefault()};z.ondrop=function(B){B.stopPropagation();B.preventDefault();A.files=B.dataTransfer.files;A.show();$("#file-error-max-size").hide()};$(document).on("click","#file-browser",function(B){B.preventDefault();$("#file-form-element").get(0).click()});$(document).on("click","#file-upload-button",function(B){B.preventDefault();A.currentFile=0;A.checkFiles()});$("#file-form-element").change(function(){A.files=document.getElementById("file-form-element").files;A.show();$("#file-error-max-size").hide()})}};w.prototype.show=function(){$("#file-list").remove();if(this.files.length>0){$("#file-upload-button").prop("disabled",false);$("#file-dropzone-inner").hide();var D=jQuery("<ul>",{id:"file-list"});for(var C=0;C<this.files.length;C++){var A=jQuery("<span>",{id:"file-percentage-"+C}).append("(0%)");var B=jQuery("<progress>",{id:"file-progress-"+C,value:0});var z=jQuery("<li>",{id:"file-label-"+C}).append(B).append("&nbsp;").append(this.files[C].name).append("&nbsp;").append(A);D.append(z)}$("#file-dropzone").append(D)}else{$("#file-dropzone-inner").show()}};w.prototype.checkFiles=function(){var z=parseInt($("#file-dropzone").data("max-size"));for(var A=0;A<this.files.length;A++){if(this.files[A].size>z){$("#file-error-max-size").show();$("#file-label-"+A).addClass("file-error");$("#file-upload-button").prop("disabled",true);return}}this.uploadFiles()};w.prototype.uploadFiles=function(){if(this.files.length>0){this.uploadFile(this.files[this.currentFile])}};w.prototype.uploadFile=function(C){var z=document.getElementById("file-dropzone");var A=z.dataset.url;var D=new XMLHttpRequest();var B=new FormData();D.upload.addEventListener("progress",this.updateProgress.bind(this));D.upload.addEventListener("load",this.transferComplete.bind(this));D.open("POST",A,true);B.append("files[]",C);D.send(B)};w.prototype.updateProgress=function(z){if(z.lengthComputable){$("#file-progress-"+this.currentFile).val(z.loaded/z.total);$("#file-percentage-"+this.currentFile).text("("+Math.floor((z.loaded/z.total)*100)+"%)")}};w.prototype.transferComplete=function(){this.currentFile++;if(this.currentFile<this.files.length){this.uploadFile(this.files[this.currentFile])}else{$("#file-upload-button").prop("disabled",true);$("#file-upload-button").parent().hide();$("#file-done").show()}};function j(){}j.prototype.execute=function(){var z=$("#calendar");z.fullCalendar({lang:$("body").data("js-lang"),editable:true,eventLimit:true,defaultView:"month",header:{left:"prev,next today",center:"title",right:"month,agendaWeek,agendaDay"},eventDrop:function(A){$.ajax({cache:false,url:z.data("save-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({task_id:A.id,date_due:A.start.format()})})},viewRender:function(){var A=z.data("check-url");var C={start:z.fullCalendar("getView").start.format(),end:z.fullCalendar("getView").end.format()};for(var B in C){A+="&"+B+"="+C[B]}$.getJSON(A,function(D){z.fullCalendar("removeEvents");z.fullCalendar("addEventSource",D);z.fullCalendar("rerenderEvents")})}})};function k(z){this.app=z;this.checkInterval=null;this.savingInProgress=false}k.prototype.execute=function(){this.app.swimlane.refresh();this.restoreColumnViewMode();this.compactView();this.poll();this.keyboardShortcuts();this.listen();this.dragAndDrop();$(window).on("load",this.columnScrolling);$(window).resize(this.columnScrolling)};k.prototype.poll=function(){var z=parseInt($("#board").attr("data-check-interval"));if(z>0){this.checkInterval=window.setInterval(this.check.bind(this),z*1000)}};k.prototype.reloadFilters=function(z){this.app.showLoadingIcon();$.ajax({cache:false,url:$("#board").data("reload-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({search:z}),success:this.refresh.bind(this),error:this.app.hideLoadingIcon.bind(this)})};k.prototype.check=function(){if(this.app.isVisible()&&!this.savingInProgress){var z=this;this.app.showLoadingIcon();$.ajax({cache:false,url:$("#board").data("check-url"),statusCode:{200:function(A){z.refresh(A)},304:function(){z.app.hideLoadingIcon()}}})}};k.prototype.save=function(C,D,z,B){var A=this;this.app.showLoadingIcon();this.savingInProgress=true;$.ajax({cache:false,url:$("#board").data("save-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({task_id:C,column_id:D,swimlane_id:B,position:z}),success:function(E){A.refresh(E);this.savingInProgress=false},error:function(){A.app.hideLoadingIcon();this.savingInProgress=false}})};k.prototype.refresh=function(z){$("#board-container").replaceWith(z);this.app.refresh();this.app.swimlane.refresh();this.app.hideLoadingIcon();this.listen();this.dragAndDrop();this.compactView();this.restoreColumnViewMode();this.columnScrolling()};k.prototype.dragAndDrop=function(){var z=this;var A={forcePlaceholderSize:true,tolerance:"pointer",connectWith:".board-task-list",placeholder:"draggable-placeholder",items:".draggable-item",stop:function(C,J){var E=J.item;var I=E.attr("data-task-id");var K=E.attr("data-position");var H=E.attr("data-column-id");var G=E.attr("data-swimlane-id");var D=E.parent().attr("data-column-id");var B=E.parent().attr("data-swimlane-id");var F=E.index()+1;E.removeClass("draggable-item-selected");if(D!=H||B!=G||F!=K){z.changeTaskState(I);z.save(I,D,F,B)}},start:function(B,C){C.item.addClass("draggable-item-selected");C.placeholder.height(C.item.height())}};if($.support.touch){$(".task-board-sort-handle").css("display","inline");A.handle=".task-board-sort-handle"}$(".board-task-list").sortable(A)};k.prototype.changeTaskState=function(A){var z=$("div[data-task-id="+A+"]");z.addClass("task-board-saving-state");z.find(".task-board-saving-icon").show()};k.prototype.listen=function(){var z=this;$(document).on("click",".task-board",function(A){if(A.target.tagName!="A"){window.location=$(this).data("task-url")}});$(document).on("click",".filter-toggle-scrolling",function(A){A.preventDefault();z.toggleCompactView()});$(document).on("click",".filter-toggle-height",function(A){A.preventDefault();z.toggleColumnScrolling()});$(document).on("click",".board-toggle-column-view",function(){z.toggleColumnViewMode($(this).data("column-id"))})};k.prototype.toggleColumnScrolling=function(){var z=localStorage.getItem("column_scroll");if(z==undefined){z=1}localStorage.setItem("column_scroll",z==0?1:0);this.columnScrolling()};k.prototype.columnScrolling=function(){if(localStorage.getItem("column_scroll")==0){var z=80;$(".filter-max-height").show();$(".filter-min-height").hide();$(".board-rotation-wrapper").css("min-height","");$(".board-task-list").each(function(){var A=$(this).height();if(A>z){z=A}});$(".board-task-list").css("min-height",z);$(".board-task-list").css("height","")}else{$(".filter-max-height").hide();$(".filter-min-height").show();if($(".board-swimlane").length>1){$(".board-task-list").each(function(){if($(this).height()>500){$(this).css("height",500)}else{$(this).css("min-height",320);$(".board-rotation-wrapper").css("min-height",320)}})}else{var z=$(window).height()-170;$(".board-task-list").css("height",z);$(".board-rotation-wrapper").css("min-height",z)}}};k.prototype.toggleCompactView=function(){var z=localStorage.getItem("horizontal_scroll")||1;localStorage.setItem("horizontal_scroll",z==0?1:0);this.compactView()};k.prototype.compactView=function(){if(localStorage.getItem("horizontal_scroll")==0){$(".filter-wide").show();$(".filter-compact").hide();$("#board-container").addClass("board-container-compact");$("#board th:not(.board-column-header-collapsed)").addClass("board-column-compact")}else{$(".filter-wide").hide();$(".filter-compact").show();$("#board-container").removeClass("board-container-compact");$("#board th").removeClass("board-column-compact")}};k.prototype.toggleCollapsedMode=function(){var z=this;this.app.showLoadingIcon();$.ajax({cache:false,url:$('.filter-display-mode:not([style="display: none;"]) a').attr("href"),success:function(A){$(".filter-display-mode").toggle();z.refresh(A)}})};k.prototype.restoreColumnViewMode=function(){var z=this;$(".board-column-header").each(function(){var A=$(this).data("column-id");if(localStorage.getItem("hidden_column_"+A)){z.hideColumn(A)}})};k.prototype.toggleColumnViewMode=function(z){if(localStorage.getItem("hidden_column_"+z)){this.showColumn(z)}else{this.hideColumn(z)}};k.prototype.hideColumn=function(z){$(".board-column-"+z+" .board-column-expanded").hide();$(".board-column-"+z+" .board-column-collapsed").show();$(".board-column-header-"+z+" .board-column-expanded").hide();$(".board-column-header-"+z+" .board-column-collapsed").show();$(".board-column-header-"+z).each(function(){$(this).removeClass("board-column-compact");$(this).addClass("board-column-header-collapsed")});$(".board-column-"+z).each(function(){$(this).addClass("board-column-task-collapsed")});$(".board-column-"+z+" .board-rotation").each(function(){$(this).css("width",$(".board-column-"+z+"").height())});localStorage.setItem("hidden_column_"+z,1)};k.prototype.showColumn=function(z){$(".board-column-"+z+" .board-column-expanded").show();$(".board-column-"+z+" .board-column-collapsed").hide();$(".board-column-header-"+z+" .board-column-expanded").show();$(".board-column-header-"+z+" .board-column-collapsed").hide();$(".board-column-header-"+z).removeClass("board-column-header-collapsed");$(".board-column-"+z).removeClass("board-column-task-collapsed");if(localStorage.getItem("horizontal_scroll")==0){$(".board-column-header-"+z).addClass("board-column-compact")}localStorage.removeItem("hidden_column_"+z)};k.prototype.keyboardShortcuts=function(){var z=this;Mousetrap.bind("c",function(){z.toggleCompactView()});Mousetrap.bind("s",function(){z.toggleCollapsedMode()});Mousetrap.bind("n",function(){z.app.popover.open($("#board").data("task-creation-url"))})};function l(z){this.app=z}l.prototype.listen=function(){this.dragAndDrop()};l.prototype.dragAndDrop=function(){var z=this;$(".draggable-row-handle").mouseenter(function(){$(this).parent().parent().addClass("draggable-item-hover")}).mouseleave(function(){$(this).parent().parent().removeClass("draggable-item-hover")});$(".columns-table tbody").sortable({forcePlaceholderSize:true,handle:"td:first i",helper:function(B,A){A.children().each(function(){$(this).width($(this).width())});return A},stop:function(B,C){var A=C.item;A.removeClass("draggable-item-selected");z.savePosition(A.data("column-id"),A.index()+1)},start:function(A,B){B.item.addClass("draggable-item-selected")}}).disableSelection()};l.prototype.savePosition=function(C,z){var B=$(".columns-table").data("save-position-url");var A=this;this.app.showLoadingIcon();$.ajax({cache:false,url:B,contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({column_id:C,position:z}),complete:function(){A.app.hideLoadingIcon()}})};function g(z){this.app=z}g.prototype.getStorageKey=function(){return"hidden_swimlanes_"+$("#board").data("project-id")};g.prototype.expand=function(A){var B=this.getAllCollapsed();var z=B.indexOf(A);if(z>-1){B.splice(z,1)}localStorage.setItem(this.getStorageKey(),JSON.stringify(B));$(".board-swimlane-columns-"+A).css("display","table-row");$(".board-swimlane-tasks-"+A).css("display","table-row");$(".hide-icon-swimlane-"+A).css("display","inline");$(".show-icon-swimlane-"+A).css("display","none")};g.prototype.collapse=function(z){var A=this.getAllCollapsed();if(A.indexOf(z)<0){A.push(z);localStorage.setItem(this.getStorageKey(),JSON.stringify(A))}$(".board-swimlane-columns-"+z+":not(:first-child)").css("display","none");$(".board-swimlane-tasks-"+z).css("display","none");$(".hide-icon-swimlane-"+z).css("display","none");$(".show-icon-swimlane-"+z).css("display","inline")};g.prototype.isCollapsed=function(z){return this.getAllCollapsed().indexOf(z)>-1};g.prototype.getAllCollapsed=function(){return JSON.parse(localStorage.getItem(this.getStorageKey()))||[]};g.prototype.refresh=function(){var A=this.getAllCollapsed();for(var z=0;z<A.length;z++){this.collapse(A[z])}};g.prototype.listen=function(){var z=this;z.dragAndDrop();$(document).on("click",".board-swimlane-toggle",function(B){B.preventDefault();var A=$(this).data("swimlane-id");if(z.isCollapsed(A)){z.expand(A)}else{z.collapse(A)}})};g.prototype.dragAndDrop=function(){var z=this;$(".draggable-row-handle").mouseenter(function(){$(this).parent().parent().addClass("draggable-item-hover")}).mouseleave(function(){$(this).parent().parent().removeClass("draggable-item-hover")});$(".swimlanes-table tbody").sortable({forcePlaceholderSize:true,handle:"td:first i",helper:function(B,A){A.children().each(function(){$(this).width($(this).width())});return A},stop:function(A,C){var B=C.item;B.removeClass("draggable-item-selected");z.savePosition(B.data("swimlane-id"),B.index()+1)},start:function(A,B){B.item.addClass("draggable-item-selected")}}).disableSelection()};g.prototype.savePosition=function(C,z){var B=$(".swimlanes-table").data("save-position-url");var A=this;this.app.showLoadingIcon();$.ajax({cache:false,url:B,contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({swimlane_id:C,position:z}),complete:function(){A.app.hideLoadingIcon()}})};function b(z){this.app=z;this.data=[];this.options={container:"#gantt-chart",showWeekends:true,allowMoves:true,allowResizes:true,cellWidth:21,cellHeight:31,slideWidth:1000,vHeaderWidth:200}}b.prototype.saveRecord=function(z){this.app.showLoadingIcon();$.ajax({cache:false,url:$(this.options.container).data("save-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify(z),complete:this.app.hideLoadingIcon.bind(this)})};b.prototype.execute=function(){this.data=this.prepareData($(this.options.container).data("records"));var C=Math.floor((this.options.slideWidth/this.options.cellWidth)+5);var B=this.getDateRange(C);var z=B[0];var E=B[1];var A=$(this.options.container);var D=jQuery("<div>",{"class":"ganttview"});D.append(this.renderVerticalHeader());D.append(this.renderSlider(z,E));A.append(D);jQuery("div.ganttview-grid-row div.ganttview-grid-row-cell:last-child",A).addClass("last");jQuery("div.ganttview-hzheader-days div.ganttview-hzheader-day:last-child",A).addClass("last");jQuery("div.ganttview-hzheader-months div.ganttview-hzheader-month:last-child",A).addClass("last");if(!$(this.options.container).data("readonly")){this.listenForBlockResize(z);this.listenForBlockMove(z)}else{this.options.allowResizes=false;this.options.allowMoves=false}};b.prototype.renderVerticalHeader=function(){var D=jQuery("<div>",{"class":"ganttview-vtheader"});var A=jQuery("<div>",{"class":"ganttview-vtheader-item"});var C=jQuery("<div>",{"class":"ganttview-vtheader-series"});for(var z=0;z<this.data.length;z++){var B=jQuery("<span>").append(jQuery("<i>",{"class":"fa fa-info-circle tooltip",title:this.getVerticalHeaderTooltip(this.data[z])})).append("&nbsp;");if(this.data[z].type=="task"){B.append(jQuery("<a>",{href:this.data[z].link,target:"_blank",title:this.data[z].title}).append(this.data[z].title))}else{B.append(jQuery("<a>",{href:this.data[z].board_link,target:"_blank",title:$(this.options.container).data("label-board-link")}).append('<i class="fa fa-th"></i>')).append("&nbsp;").append(jQuery("<a>",{href:this.data[z].gantt_link,target:"_blank",title:$(this.options.container).data("label-gantt-link")}).append('<i class="fa fa-sliders"></i>')).append("&nbsp;").append(jQuery("<a>",{href:this.data[z].link,target:"_blank"}).append(this.data[z].title))}C.append(jQuery("<div>",{"class":"ganttview-vtheader-series-name"}).append(B))}A.append(C);D.append(A);return D};b.prototype.renderSlider=function(A,C){var z=jQuery("<div>",{"class":"ganttview-slide-container"});var B=this.getDates(A,C);z.append(this.renderHorizontalHeader(B));z.append(this.renderGrid(B));z.append(this.addBlockContainers());this.addBlocks(z,A);return z};b.prototype.renderHorizontalHeader=function(z){var F=jQuery("<div>",{"class":"ganttview-hzheader"});var D=jQuery("<div>",{"class":"ganttview-hzheader-months"});var C=jQuery("<div>",{"class":"ganttview-hzheader-days"});var B=0;for(var G in z){for(var A in z[G]){var H=z[G][A].length*this.options.cellWidth;B=B+H;D.append(jQuery("<div>",{"class":"ganttview-hzheader-month",css:{width:(H-1)+"px"}}).append($.datepicker.regional[$("body").data("js-lang")].monthNames[A]+" "+G));for(var E in z[G][A]){C.append(jQuery("<div>",{"class":"ganttview-hzheader-day"}).append(z[G][A][E].getDate()))}}}D.css("width",B+"px");C.css("width",B+"px");F.append(D).append(C);return F};b.prototype.renderGrid=function(z){var H=jQuery("<div>",{"class":"ganttview-grid"});var C=jQuery("<div>",{"class":"ganttview-grid-row"});for(var F in z){for(var A in z[F]){for(var E in z[F][A]){var B=jQuery("<div>",{"class":"ganttview-grid-row-cell"});if(this.options.showWeekends&&this.isWeekend(z[F][A][E])){B.addClass("ganttview-weekend")}C.append(B)}}}var G=jQuery("div.ganttview-grid-row-cell",C).length*this.options.cellWidth;C.css("width",G+"px");H.css("width",G+"px");for(var D=0;D<this.data.length;D++){H.append(C.clone())}return H};b.prototype.addBlockContainers=function(){var A=jQuery("<div>",{"class":"ganttview-blocks"});for(var z=0;z<this.data.length;z++){A.append(jQuery("<div>",{"class":"ganttview-block-container"}))}return A};b.prototype.addBlocks=function(A,z){var H=jQuery("div.ganttview-blocks div.ganttview-block-container",A);var B=0;for(var E=0;E<this.data.length;E++){var F=this.data[E];var I=this.daysBetween(F.start,F.end)+1;var D=this.daysBetween(z,F.start);var G=jQuery("<div>",{"class":"ganttview-block-text"});var C=jQuery("<div>",{"class":"ganttview-block tooltip"+(this.options.allowMoves?" ganttview-block-movable":""),title:this.getBarTooltip(F),css:{width:((I*this.options.cellWidth)-9)+"px","margin-left":(D*this.options.cellWidth)+"px"}}).append(G);if(I>=2){G.append(F.progress)}C.data("record",F);this.setBarColor(C,F);if(F.progress!="0%"){C.append(jQuery("<div>",{css:{"z-index":0,position:"absolute",top:0,bottom:0,"background-color":F.color.border,width:F.progress,opacity:0.4}}))}jQuery(H[B]).append(C);B=B+1}};b.prototype.getVerticalHeaderTooltip=function(A){var F="";if(A.type=="task"){F="<strong>"+A.column_title+"</strong> ("+A.progress+")<br/>"+A.title}else{var C=["managers","members"];for(var B in C){var D=C[B];if(!jQuery.isEmptyObject(A.users[D])){var E=jQuery("<ul>");for(var z in A.users[D]){E.append(jQuery("<li>").append(A.users[D][z]))}F+="<p><strong>"+$(this.options.container).data("label-"+D)+"</strong></p>"+E[0].outerHTML}}}return F};b.prototype.getBarTooltip=function(z){var A="";if(z.not_defined){A=$(this.options.container).data("label-not-defined")}else{if(z.type=="task"){A="<strong>"+z.progress+"</strong><br/>"+$(this.options.container).data("label-assignee")+" "+(z.assignee?z.assignee:"")+"<br/>"}A+=$(this.options.container).data("label-start-date")+" "+$.datepicker.formatDate("yy-mm-dd",z.start)+"<br/>";A+=$(this.options.container).data("label-end-date")+" "+$.datepicker.formatDate("yy-mm-dd",z.end)}return A};b.prototype.setBarColor=function(A,z){if(z.not_defined){A.addClass("ganttview-block-not-defined")}else{A.css("background-color",z.color.background);A.css("border-color",z.color.border)}};b.prototype.listenForBlockResize=function(z){var A=this;jQuery("div.ganttview-block",this.options.container).resizable({grid:this.options.cellWidth,handles:"e,w",delay:300,stop:function(){var B=jQuery(this);A.updateDataAndPosition(B,z);A.saveRecord(B.data("record"))}})};b.prototype.listenForBlockMove=function(z){var A=this;jQuery("div.ganttview-block",this.options.container).draggable({axis:"x",delay:300,grid:[this.options.cellWidth,this.options.cellWidth],stop:function(){var B=jQuery(this);A.updateDataAndPosition(B,z);A.saveRecord(B.data("record"))}})};b.prototype.updateDataAndPosition=function(E,C){var z=jQuery("div.ganttview-slide-container",this.options.container);var I=z.scrollLeft();var F=E.offset().left-z.offset().left-1+I;var H=E.data("record");H.not_defined=false;this.setBarColor(E,H);var B=Math.round(F/this.options.cellWidth);var G=this.addDays(this.cloneDate(C),B);H.start=G;var A=E.outerWidth();var D=Math.round(A/this.options.cellWidth)-1;H.end=this.addDays(this.cloneDate(G),D);if(H.type==="task"&&D>0){jQuery("div.ganttview-block-text",E).text(H.progress)}E.attr("title",this.getBarTooltip(H));E.data("record",H);E.css("top","").css("left","").css("position","relative").css("margin-left",F+"px")};b.prototype.getDates=function(D,z){var C=[];C[D.getFullYear()]=[];C[D.getFullYear()][D.getMonth()]=[D];var B=D;while(this.compareDate(B,z)==-1){var A=this.addDays(this.cloneDate(B),1);if(!C[A.getFullYear()]){C[A.getFullYear()]=[]}if(!C[A.getFullYear()][A.getMonth()]){C[A.getFullYear()][A.getMonth()]=[]}C[A.getFullYear()][A.getMonth()].push(A);B=A}return C};b.prototype.prepareData=function(B){for(var A=0;A<B.length;A++){var C=new Date(B[A].start[0],B[A].start[1]-1,B[A].start[2],0,0,0,0);B[A].start=C;var z=new Date(B[A].end[0],B[A].end[1]-1,B[A].end[2],0,0,0,0);B[A].end=z}return B};b.prototype.getDateRange=function(B){var E=new Date();var A=new Date();for(var C=0;C<this.data.length;C++){var D=new Date();D.setTime(Date.parse(this.data[C].start));var z=new Date();z.setTime(Date.parse(this.data[C].end));if(C==0){E=D;A=z}if(this.compareDate(E,D)==1){E=D}if(this.compareDate(A,z)==-1){A=z}}if(this.daysBetween(E,A)<B){A=this.addDays(this.cloneDate(E),B)}E.setDate(E.getDate()-1);return[E,A]};b.prototype.daysBetween=function(C,z){if(!C||!z){return 0}var B=0,A=this.cloneDate(C);while(this.compareDate(A,z)==-1){B=B+1;this.addDays(A,1)}return B};b.prototype.isWeekend=function(z){return z.getDay()%6==0};b.prototype.cloneDate=function(z){return new Date(z.getTime())};b.prototype.addDays=function(z,A){z.setDate(z.getDate()+A*1);return z};b.prototype.compareDate=function(A,z){if(isNaN(A)||isNaN(z)){throw new Error(A+" - "+z)}else{if(A instanceof Date&&z instanceof Date){return(A<z)?-1:(A>z)?1:0}else{throw new TypeError(A+" - "+z)}}};function a(z){this.app=z}a.prototype.listen=function(){var z=this;var A=0;$(document).on("click",".color-square",function(){$(".color-square-selected").removeClass("color-square-selected");$(this).addClass("color-square-selected");$("#form-color_id").val($(this).data("color-id"))});$(document).on("click",".assign-me",function(D){D.preventDefault();var B=$(this).data("current-id");var C="#"+$(this).data("target-id");if($(C+" option[value="+B+"]").length){$(C).val(B)}});$(document).on("change","select.task-reload-project-destination",function(){if(A>0){$(this).val(A)}else{A=$(this).val();var B=$(this).data("redirect").replace(/PROJECT_ID/g,A);$(".loading-icon").show();$.ajax({type:"GET",url:B,success:function(D,E,C){A=0;$(".loading-icon").hide();z.app.popover.afterSubmit(D,C,z.app.popover)}})}})};function o(){}o.prototype.listen=function(){$(".project-change-role").on("change",function(){$.ajax({cache:false,url:$(this).data("url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({id:$(this).data("id"),role:$(this).val()})})});$("#project-creation-form #form-src_project_id").on("change",function(){var z=$(this).val();if(z==0){$(".project-creation-options").hide()}else{$(".project-creation-options").show()}})};function e(z){this.app=z}e.prototype.listen=function(){var z=this;this.dragAndDrop();$(document).on("click",".subtask-toggle-status",function(B){B.preventDefault();var A=$(this);$.ajax({cache:false,url:A.attr("href"),success:function(C){if(A.hasClass("subtask-refresh-table")){$(".subtasks-table").replaceWith(C)}else{A.replaceWith(C)}z.dragAndDrop()}})});$(document).on("click",".subtask-toggle-timer",function(B){B.preventDefault();var A=$(this);$.ajax({cache:false,url:A.attr("href"),success:function(C){$(".subtasks-table").replaceWith(C);z.dragAndDrop()}})})};e.prototype.dragAndDrop=function(){var z=this;$(".draggable-row-handle").mouseenter(function(){$(this).parent().parent().addClass("draggable-item-hover")}).mouseleave(function(){$(this).parent().parent().removeClass("draggable-item-hover")});$(".subtasks-table tbody").sortable({forcePlaceholderSize:true,handle:"td:first i",helper:function(B,A){A.children().each(function(){$(this).width($(this).width())});return A},stop:function(A,B){var C=B.item;C.removeClass("draggable-item-selected");z.savePosition(C.data("subtask-id"),C.index()+1)},start:function(A,B){B.item.addClass("draggable-item-selected")}}).disableSelection()};e.prototype.savePosition=function(C,z){var B=$(".subtasks-table").data("save-position-url");var A=this;this.app.showLoadingIcon();$.ajax({cache:false,url:B,contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({subtask_id:C,position:z}),complete:function(){A.app.hideLoadingIcon()}})};function t(){}t.prototype.execute=function(){var B=$("#chart").data("metrics");var A=[];for(var z=0;z<B.length;z++){A.push([B[z].column_title,B[z].nb_tasks])}c3.generate({data:{columns:A,type:"donut"}})};function q(){}q.prototype.execute=function(){var B=$("#chart").data("metrics");var A=[];for(var z=0;z<B.length;z++){A.push([B[z].user,B[z].nb_tasks])}c3.generate({data:{columns:A,type:"donut"}})};function c(){}c.prototype.execute=function(){var F=$("#chart").data("metrics");var E=[];var z=[];var A=[];var C=d3.time.format("%Y-%m-%d");var G=d3.time.format($("#chart").data("date-format"));for(var D=0;D<F.length;D++){for(var B=0;B<F[D].length;B++){if(D==0){E.push([F[D][B]]);if(B>0){z.push(F[D][B])}}else{E[B].push(F[D][B]);if(B==0){A.push(G(C.parse(F[D][B])))}}}}c3.generate({data:{columns:E,type:"area-spline",groups:[z]},axis:{x:{type:"category",categories:A}}})};function p(){}p.prototype.execute=function(){var E=$("#chart").data("metrics");var D=[[$("#chart").data("label-total")]];var z=[];var B=d3.time.format("%Y-%m-%d");var F=d3.time.format($("#chart").data("date-format"));for(var C=0;C<E.length;C++){for(var A=0;A<E[C].length;A++){if(C==0){D.push([E[C][A]])}else{D[A+1].push(E[C][A]);if(A>0){if(D[0][C]==undefined){D[0].push(0)}D[0][C]+=E[C][A]}if(A==0){z.push(F(B.parse(E[C][A])))}}}}c3.generate({data:{columns:D},axis:{x:{type:"category",categories:z}}})};function h(z){this.app=z}h.prototype.execute=function(){var B=$("#chart").data("metrics");var C=[$("#chart").data("label")];var z=[];for(var A in B){C.push(B[A].average);z.push(B[A].title)}c3.generate({data:{columns:[C],type:"bar"},bar:{width:{ratio:0.5}},axis:{x:{type:"category",categories:z},y:{tick:{format:this.app.formatDuration}}},legend:{show:false}})};function y(z){this.app=z}y.prototype.execute=function(){var B=$("#chart").data("metrics");var C=[$("#chart").data("label")];var z=[];for(var A=0;A<B.length;A++){C.push(B[A].time_spent);z.push(B[A].title)}c3.generate({data:{columns:[C],type:"bar"},bar:{width:{ratio:0.5}},axis:{x:{type:"category",categories:z},y:{tick:{format:this.app.formatDuration}}},legend:{show:false}})};function v(z){this.app=z}v.prototype.execute=function(){var F=$("#chart").data("metrics");var E=[$("#chart").data("label-cycle")];var B=[$("#chart").data("label-lead")];var A=[];var D={};D[$("#chart").data("label-cycle")]="area";D[$("#chart").data("label-lead")]="area-spline";var z={};z[$("#chart").data("label-lead")]="#afb42b";z[$("#chart").data("label-cycle")]="#4e342e";for(var C=0;C<F.length;C++){E.push(parseInt(F[C].avg_cycle_time));B.push(parseInt(F[C].avg_lead_time));A.push(F[C].day)}c3.generate({data:{columns:[B,E],types:D,colors:z},axis:{x:{type:"category",categories:A},y:{tick:{format:this.app.formatDuration}}}})};function i(z){this.app=z}i.prototype.execute=function(){var E=$("#chart").data("metrics");var A=$("#chart").data("label-open");var z=$("#chart").data("label-closed");var F=[$("#chart").data("label-spent")];var D=[$("#chart").data("label-estimated")];var C=[];for(var B in E){F.push(parseFloat(E[B].time_spent));D.push(parseFloat(E[B].time_estimated));C.push(B=="open"?A:z)}c3.generate({data:{columns:[F,D],type:"bar"},bar:{width:{ratio:0.2}},axis:{x:{type:"category",categories:C}},legend:{show:true}})};function x(){this.routes={}}x.prototype.addRoute=function(A,z){this.routes[A]=z};x.prototype.dispatch=function(A){for(var B in this.routes){if(document.getElementById(B)){var z=Object.create(this.routes[B].prototype);this.routes[B].apply(z,[A]);z.execute();break}}};jQuery(document).ready(function(){var A=new n();var z=new x();z.addRoute("board",k);z.addRoute("calendar",j);z.addRoute("screenshot-zone",d);z.addRoute("analytic-task-repartition",t);z.addRoute("analytic-user-repartition",q);z.addRoute("analytic-cfd",c);z.addRoute("analytic-burndown",p);z.addRoute("analytic-avg-time-column",h);z.addRoute("analytic-task-time-column",y);z.addRoute("analytic-lead-cycle-time",v);z.addRoute("analytic-compare-hours",i);z.addRoute("gantt-chart",b);z.dispatch(A);A.listen()})})(); \ No newline at end of file
+!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a){return a>1&&5>a&&1!==~~(a/10)}function d(a,b,d,e){var f=a+" ";switch(d){case"s":return b||e?"pár sekund":"pár sekundami";case"m":return b?"minuta":e?"minutu":"minutou";case"mm":return b||e?f+(c(a)?"minuty":"minut"):f+"minutami";case"h":return b?"hodina":e?"hodinu":"hodinou";case"hh":return b||e?f+(c(a)?"hodiny":"hodin"):f+"hodinami";case"d":return b||e?"den":"dnem";case"dd":return b||e?f+(c(a)?"dny":"dní"):f+"dny";case"M":return b||e?"měsíc":"měsícem";case"MM":return b||e?f+(c(a)?"měsíce":"měsíců"):f+"měsíci";case"y":return b||e?"rok":"rokem";case"yy":return b||e?f+(c(a)?"roky":"let"):f+"lety"}}var e="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),f="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");(b.defineLocale||b.lang).call(b,"cs",{months:e,monthsShort:f,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(e,f),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd D. MMMM YYYY LT"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:d,m:d,mm:d,h:d,hh:d,d:d,dd:d,M:d,MM:d,y:d,yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("cs","cs",{closeText:"Zavřít",prevText:"&#x3C;Dříve",nextText:"Později&#x3E;",currentText:"Nyní",monthNames:["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"],monthNamesShort:["led","úno","bře","dub","kvě","čer","čvc","srp","zář","říj","lis","pro"],dayNames:["neděle","pondělí","úterý","středa","čtvrtek","pátek","sobota"],dayNamesShort:["ne","po","út","st","čt","pá","so"],dayNamesMin:["ne","po","út","st","čt","pá","so"],weekHeader:"Týd",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("cs",{buttonText:{month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},allDayText:"Celý den",eventLimitText:function(a){return"+další: "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd [d.] D. MMMM YYYY LT"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("da","da",{closeText:"Luk",prevText:"&#x3C;Forrige",nextText:"Næste&#x3E;",currentText:"Idag",monthNames:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],dayNamesShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayNamesMin:["Sø","Ma","Ti","On","To","Fr","Lø"],weekHeader:"Uge",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("da",{buttonText:{month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"flere"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]}(b.defineLocale||b.lang).call(b,"de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[Heute um] LT [Uhr]",sameElse:"L",nextDay:"[Morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[Gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:c,mm:"%d Minuten",h:c,hh:"%d Stunden",d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("de","de",{closeText:"Schließen",prevText:"&#x3C;Zurück",nextText:"Vor&#x3E;",currentText:"Heute",monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayNamesMin:["So","Mo","Di","Mi","Do","Fr","Sa"],weekHeader:"KW",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("de",{buttonText:{month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},allDayText:"Ganztägig",eventLimitText:function(a){return"+ weitere "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),d="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");(b.defineLocale||b.lang).call(b,"es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("es","es",{closeText:"Cerrar",prevText:"&#x3C;Ant",nextText:"Sig&#x3E;",currentText:"Hoy",monthNames:["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"],monthNamesShort:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"],dayNames:["domingo","lunes","martes","miércoles","jueves","viernes","sábado"],dayNamesShort:["dom","lun","mar","mié","jue","vie","sáb"],dayNamesMin:["D","L","M","X","J","V","S"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("es",{buttonText:{month:"Mes",week:"Semana",day:"Día",list:"Agenda"},allDayHtml:"Todo<br/>el día",eventLimitText:"más"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("el","el",{closeText:"Κλείσιμο",prevText:"Προηγούμενος",nextText:"Επόμενος",currentText:"Σήμερα",monthNames:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthNamesShort:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],dayNames:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],dayNamesShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayNamesMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],weekHeader:"Εβδ",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("el",{buttonText:{month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},allDayText:"Ολοήμερο",eventLimitText:"περισσότερα"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,e){var f="";switch(c){case"s":return e?"muutaman sekunnin":"muutama sekunti";case"m":return e?"minuutin":"minuutti";case"mm":f=e?"minuutin":"minuuttia";break;case"h":return e?"tunnin":"tunti";case"hh":f=e?"tunnin":"tuntia";break;case"d":return e?"päivän":"päivä";case"dd":f=e?"päivän":"päivää";break;case"M":return e?"kuukauden":"kuukausi";case"MM":f=e?"kuukauden":"kuukautta";break;case"y":return e?"vuoden":"vuosi";case"yy":f=e?"vuoden":"vuotta"}return f=d(a,e)+" "+f}function d(a,b){return 10>a?b?f[a]:e[a]:a}var e="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),f=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",e[7],e[8],e[9]];(b.defineLocale||b.lang).call(b,"fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] LT",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] LT",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] LT",llll:"ddd, Do MMM YYYY, [klo] LT"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("fi","fi",{closeText:"Sulje",prevText:"&#xAB;Edellinen",nextText:"Seuraava&#xBB;",currentText:"Tänään",monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","Kesä","Heinä","Elo","Syys","Loka","Marras","Joulu"],dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],dayNamesMin:["Su","Ma","Ti","Ke","To","Pe","La"],weekHeader:"Vk",dateFormat:"d.m.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fi",{buttonText:{month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},allDayText:"Koko päivä",eventLimitText:"lisää"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("fr",{buttonText:{month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la<br/>journée",eventLimitText:"en plus"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function d(a){return(a?"":"[múlt] ")+"["+e[this.day()]+"] LT[-kor]"}var e="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");(b.defineLocale||b.lang).call(b,"hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D., LT",LLLL:"YYYY. MMMM D., dddd LT"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return d.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return d.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:c,m:c,mm:c,h:c,hh:c,d:c,dd:c,M:c,MM:c,y:c,yy:c},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("hu","hu",{closeText:"bezár",prevText:"vissza",nextText:"előre",currentText:"ma",monthNames:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],monthNamesShort:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec"],dayNames:["Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],dayNamesShort:["Vas","Hét","Ked","Sze","Csü","Pén","Szo"],dayNamesMin:["V","H","K","Sze","Cs","P","Szo"],weekHeader:"Hét",dateFormat:"yy.mm.dd.",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:""}),a.fullCalendar.lang("hu",{buttonText:{month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},allDayText:"Egész nap",eventLimitText:"további"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"LT.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] LT",LLLL:"dddd, D MMMM YYYY [pukul] LT"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("id","id",{closeText:"Tutup",prevText:"&#x3C;mundur",nextText:"maju&#x3E;",currentText:"hari ini",monthNames:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","Nopember","Desember"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agus","Sep","Okt","Nop","Des"],dayNames:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],dayNamesShort:["Min","Sen","Sel","Rab","kam","Jum","Sab"],dayNamesMin:["Mg","Sn","Sl","Rb","Km","jm","Sb"],weekHeader:"Mg",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("id",{buttonText:{month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},allDayHtml:"Sehari<br/>penuh",eventLimitText:"lebih"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("it","it",{closeText:"Chiudi",prevText:"&#x3C;Prec",nextText:"Succ&#x3E;",currentText:"Oggi",monthNames:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthNamesShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],dayNames:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],dayNamesShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayNamesMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("it",{buttonText:{month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},allDayHtml:"Tutto il<br/>giorno",eventLimitText:function(a){return"+altri "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"LTs秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日LT",LLLL:"YYYY年M月D日LT dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),a.fullCalendar.datepickerLang("ja","ja",{closeText:"閉じる",prevText:"&#x3C;前",nextText:"次&#x3E;",currentText:"今日",monthNames:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthNamesShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayNames:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],dayNamesShort:["日","月","火","水","木","金","土"],dayNamesMin:["日","月","火","水","木","金","土"],weekHeader:"週",dateFormat:"yy/mm/dd",firstDay:0,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),a.fullCalendar.lang("ja",{buttonText:{month:"月",week:"週",day:"日",list:"予定リスト"},allDayText:"終日",eventLimitText:function(a){return"他 "+a+" 件"}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),d="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");(b.defineLocale||b.lang).call(b,"nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?d[a.month()]:c[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("nl","nl",{closeText:"Sluiten",prevText:"←",nextText:"→",currentText:"Vandaag",monthNames:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthNamesShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],dayNames:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],dayNamesShort:["zon","maa","din","woe","don","vri","zat"],dayNamesMin:["zo","ma","di","wo","do","vr","za"],weekHeader:"Wk",dateFormat:"dd-mm-yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nl",{buttonText:{month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",eventLimitText:"extra"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",LTS:"LT.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] LT",LLLL:"dddd D. MMMM YYYY [kl.] LT"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("nb","nb",{closeText:"Lukk",prevText:"&#xAB;Forrige",nextText:"Neste&#xBB;",currentText:"I dag",monthNames:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthNamesShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],dayNamesShort:["søn","man","tir","ons","tor","fre","lør"],dayNames:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],dayNamesMin:["sø","ma","ti","on","to","fr","lø"],weekHeader:"Uke",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("nb",{buttonText:{month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},allDayText:"Hele dagen",eventLimitText:"til"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function d(a,b,d){var e=a+" ";switch(d){case"m":return b?"minuta":"minutę";case"mm":return e+(c(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return e+(c(a)?"godziny":"godzin");case"MM":return e+(c(a)?"miesiące":"miesięcy");case"yy":return e+(c(a)?"lata":"lat")}}var e="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),f="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");(b.defineLocale||b.lang).call(b,"pl",{months:function(a,b){return/D MMMM/.test(b)?f[a.month()]:e[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:d,mm:d,h:d,hh:d,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:d,y:"rok",yy:d},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("pl","pl",{closeText:"Zamknij",prevText:"&#x3C;Poprzedni",nextText:"Następny&#x3E;",currentText:"Dziś",monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lu","Mar","Kw","Maj","Cze","Lip","Sie","Wrz","Pa","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Nie","Pn","Wt","Śr","Czw","Pt","So"],dayNamesMin:["N","Pn","Wt","Śr","Cz","Pt","So"],weekHeader:"Tydz",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pl",{buttonText:{month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},allDayText:"Cały dzień",eventLimitText:"więcej"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY LT",LLLL:"dddd, D [de] MMMM [de] YYYY LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("pt","pt",{closeText:"Fechar",prevText:"Anterior",nextText:"Seguinte",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sem",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},allDayText:"Todo o dia",eventLimitText:"mais"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] LT",LLLL:"dddd, D [de] MMMM [de] YYYY [às] LT"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"}),a.fullCalendar.datepickerLang("pt-br","pt-BR",{closeText:"Fechar",prevText:"&#x3C;Anterior",nextText:"Próximo&#x3E;",currentText:"Hoje",monthNames:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],weekHeader:"Sm",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("pt-br",{buttonText:{month:"Mês",week:"Semana",day:"Dia",list:"Compromissos"},allDayText:"dia inteiro",eventLimitText:function(a){return"mais +"+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){function c(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function d(a,b,d){var e={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===d?b?"минута":"минуту":a+" "+c(e[d],+a)}function e(a,b){var c={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function f(a,b){var c={nominative:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function g(a,b){var c={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},d=/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}(b.defineLocale||b.lang).call(b,"ru",{months:e,monthsShort:f,weekdays:g,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., LT",LLLL:"dddd, D MMMM YYYY г., LT"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:d,mm:d,h:"час",hh:d,d:"день",dd:d,M:"месяц",MM:d,y:"год",yy:d},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("ru","ru",{closeText:"Закрыть",prevText:"&#x3C;Пред",nextText:"След&#x3E;",currentText:"Сегодня",monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],weekHeader:"Нед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("ru",{buttonText:{month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},allDayText:"Весь день",eventLimitText:function(a){return"+ ещё "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd D MMMM YYYY LT"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"dddd LT",lastWeek:"[Förra] dddd[en] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("sv","sv",{closeText:"Stäng",prevText:"&#xAB;Förra",nextText:"Nästa&#xBB;",currentText:"Idag",monthNames:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNamesShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayNames:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],dayNamesMin:["Sö","Må","Ti","On","To","Fr","Lö"],weekHeader:"Ve",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sv",{buttonText:{month:"Månad",week:"Vecka",day:"Dag",list:"Program"},allDayText:"Heldag",eventLimitText:"till"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c={words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,d){var e=c.words[d];return 1===d.length?b?e[0]:e[1]:a+" "+c.correctGrammaticalCase(a,e)}};(b.defineLocale||b.lang).call(b,"sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY LT",LLLL:"dddd, D. MMMM YYYY LT"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:c.translate,mm:c.translate,h:c.translate,hh:c.translate,d:"dan",dd:c.translate,M:"mesec",MM:c.translate,y:"godinu",yy:c.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("sr","sr",{closeText:"Затвори",prevText:"&#x3C;",nextText:"&#x3E;",currentText:"Данас",monthNames:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthNamesShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],dayNames:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],dayNamesShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],dayNamesMin:["Не","По","Ут","Ср","Че","Пе","Су"],weekHeader:"Сед",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("sr",{buttonText:{month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},allDayText:"Цео дан",eventLimitText:function(a){return"+ још "+a}})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",LTS:"LT s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา LT",LLLL:"วันddddที่ D MMMM YYYY เวลา LT"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),a.fullCalendar.datepickerLang("th","th",{closeText:"ปิด",prevText:"&#xAB;&#xA0;ย้อน",nextText:"ถัดไป&#xA0;&#xBB;",currentText:"วันนี้",monthNames:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthNamesShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],dayNames:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์"],dayNamesShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayNamesMin:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("th",{buttonText:{month:"เดือน",week:"สัปดาห์",day:"วัน",list:"แผนงาน"},allDayText:"ตลอดวัน",eventLimitText:"เพิ่มเติม"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){var c={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};(b.defineLocale||b.lang).call(b,"tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"LT:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY LT",LLLL:"dddd, D MMMM YYYY LT"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,d=a%100-b,e=a>=100?100:null;return a+(c[b]||c[d]||c[e])},week:{dow:1,doy:7}}),a.fullCalendar.datepickerLang("tr","tr",{closeText:"kapat",prevText:"&#x3C;geri",nextText:"ileri&#x3e",currentText:"bugün",monthNames:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthNamesShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],dayNames:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],dayNamesShort:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],dayNamesMin:["Pz","Pt","Sa","Ça","Pe","Cu","Ct"],weekHeader:"Hf",dateFormat:"dd.mm.yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),a.fullCalendar.lang("tr",{buttonText:{next:"ileri",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},allDayText:"Tüm gün",eventLimitText:"daha fazla"})});!function(a){"function"==typeof define&&define.amd?define(["jquery","moment"],a):a(jQuery,moment)}(function(a,b){(b.defineLocale||b.lang).call(b,"zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日LT",LLLL:"YYYY年MMMD日ddddLT",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日LT",llll:"YYYY年MMMD日ddddLT"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var a,c;return a=b().startOf("week"),c=this.unix()-a.unix()>=604800?"[下]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},lastWeek:function(){var a,c;return a=b().startOf("week"),c=this.unix()<a.unix()?"[上]":"[本]",0===this.minutes()?c+"dddAh点整":c+"dddAh点mm"},sameElse:"LL"},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"周";default:return a}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1分钟",mm:"%d分钟",h:"1小时",hh:"%d小时",d:"1天",dd:"%d天",M:"1个月",MM:"%d个月",y:"1年",yy:"%d年"},week:{dow:1,doy:4}}),a.fullCalendar.datepickerLang("zh-cn","zh-CN",{closeText:"关闭",prevText:"&#x3C;上月",nextText:"下月&#x3E;",currentText:"今天",monthNames:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthNamesShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayNames:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayNamesShort:["周日","周一","周二","周三","周四","周五","周六"],dayNamesMin:["日","一","二","三","四","五","六"],weekHeader:"周",dateFormat:"yy-mm-dd",firstDay:1,isRTL:!1,showMonthAfterYear:!0,yearSuffix:"年"}),a.fullCalendar.lang("zh-cn",{buttonText:{month:"月",week:"周",day:"日",list:"日程"},allDayText:"全天",eventLimitText:function(a){return"另外 "+a+" 个"}})});(function(){function u(z){this.app=z;this.router=new x();this.router.addRoute("screenshot-zone",d)}u.prototype.isOpen=function(){return $("#popover-container").size()>0};u.prototype.open=function(A){var z=this;z.app.dropdown.close();$.get(A,function(B){$("body").prepend('<div id="popover-container"><div id="popover-content">'+B+"</div></div>");z.app.refresh();z.router.dispatch(this.app);z.afterOpen()})};u.prototype.close=function(z){if(this.isOpen()){if(z){z.preventDefault()}$("#popover-container").remove()}};u.prototype.onClick=function(B){B.preventDefault();B.stopPropagation();var A=B.currentTarget||B.target;var z=A.getAttribute("href");if(!z){z=A.getAttribute("data-href")}if(z){this.open(z)}};u.prototype.listen=function(){$(document).on("click",".popover",this.onClick.bind(this));$(document).on("click",".close-popover",this.close.bind(this));$(document).on("click","#popover-container",this.close.bind(this));$(document).on("click","#popover-content",function(z){z.stopPropagation()})};u.prototype.afterOpen=function(){var A=this;var z=$("#popover-content .popover-form");if(z){z.on("submit",function(B){B.preventDefault();$.ajax({type:"POST",url:z.attr("action"),data:z.serialize(),success:function(D,E,C){A.afterSubmit(D,C,A)},beforeSend:function(){var C=$('.popover-form button[type="submit"]');C.html('<i class="fa fa-spinner fa-pulse"></i> '+C.html());C.attr("disabled",true)}})})}$(document).on("click",".popover-link",function(B){B.preventDefault();$.ajax({type:"GET",url:$(this).attr("href"),success:function(D,E,C){A.afterSubmit(D,C,A)}})})};u.prototype.afterSubmit=function(B,A,z){var C=A.getResponseHeader("X-Ajax-Redirect");if(C){window.location=C==="self"?window.location.href.split("#")[0]:C}else{$("#popover-content").html(B);$("#popover-content input[autofocus]").focus();z.afterOpen()}};function s(){}s.prototype.listen=function(){var z=this;$(document).on("click",function(){z.close()});$(document).on("click",".dropdown-menu",function(D){D.preventDefault();D.stopImmediatePropagation();z.close();var B=$(this).next("ul");var E=$(this).offset();$("body").append(jQuery("<div>",{id:"dropdown"}));B.clone().appendTo("#dropdown");var F=$("#dropdown ul");F.addClass("dropdown-submenu-open");var C=F.outerHeight();var A=F.outerWidth();if(E.top+C-$(window).scrollTop()<$(window).height()||$(window).scrollTop()+E.top<C){F.css("top",E.top+$(this).height())}else{F.css("top",E.top-C-5)}if(E.left+A>$(window).width()){F.css("left",E.left-A+$(this).outerWidth())}else{F.css("left",E.left)}});$(document).on("click",".dropdown-submenu-open li",function(A){if($(A.target).is("li")){$(this).find("a:visible")[0].click()}});$("textarea[data-mention-search-url]").textcomplete([{match:/(^|\s)@(\w*)$/,search:function(B,C){var A=$("textarea[data-mention-search-url]").data("mention-search-url");$.getJSON(A,{q:B}).done(function(D){C(D)}).fail(function(){C([])})},replace:function(A){return"$1@"+A+" "},cache:true}],{className:"textarea-dropdown"})};s.prototype.close=function(){$("#dropdown").remove()};function r(z){this.app=z}r.prototype.listen=function(){var z=this;$(".tooltip").tooltip({track:false,show:false,hide:false,position:{my:"left-20 top",at:"center bottom+9",using:function(A,B){$(this).css(A);var C=B.target.left+B.target.width/2-B.element.left-20;$("<div>").addClass("tooltip-arrow").addClass(B.vertical).addClass(C<1?"align-left":"align-right").appendTo(this)}},content:function(){var C=this;var A=$(this).attr("data-href");if(!A){return'<div class="markdown">'+$(this).attr("title")+"</div>"}$.get(A,function B(F){var E=$(".ui-tooltip:visible");$(".ui-tooltip-content:visible").html(F);E.css({top:"",left:""});E.children(".tooltip-arrow").remove();var D=$(C).tooltip("option","position");D.of=$(C);E.position(D)});return'<i class="fa fa-spinner fa-spin"></i>'}}).on("mouseenter",function(){var A=this;$(this).tooltip("open");$(".ui-tooltip").on("mouseleave",function(){$(A).tooltip("close")})}).on("mouseleave focusout",function(A){A.stopImmediatePropagation();var B=this;setTimeout(function(){if(!$(".ui-tooltip:hover").length){$(B).tooltip("close")}},100)})};function m(){}m.prototype.showPreview=function(D){D.preventDefault();var A=$(".write-area");var C=$(".preview-area");var z=$("textarea");$("#markdown-write").parent().removeClass("form-tab-selected");$("#markdown-preview").parent().addClass("form-tab-selected");var B=$.ajax({url:$("body").data("markdown-preview-url"),contentType:"application/json",type:"POST",processData:false,dataType:"html",data:JSON.stringify({text:z.val()})});B.done(function(E){C.find(".markdown").html(E);C.css("height",z.css("height"));C.css("width",z.css("width"));A.hide();C.show()})};m.prototype.showWriter=function(z){z.preventDefault();$("#markdown-write").parent().addClass("form-tab-selected");$("#markdown-preview").parent().removeClass("form-tab-selected");$(".write-area").show();$(".preview-area").hide()};m.prototype.listen=function(){$(document).on("click","#markdown-preview",this.showPreview.bind(this));$(document).on("click","#markdown-write",this.showWriter.bind(this))};function f(z){this.app=z;this.keyboardShortcuts()}f.prototype.focus=function(){$(document).on("focus","#form-search",function(){if($("#form-search")[0].setSelectionRange){$("#form-search")[0].setSelectionRange($("#form-search").val().length,$("#form-search").val().length)}})};f.prototype.listen=function(){var z=this;$(document).on("click",".filter-helper",function(C){C.preventDefault();var B=$(this).data("filter");var A=$(this).data("append-filter");if(A){B=$("#form-search").val()+" "+A}$("#form-search").val(B);if($("#board").length){z.app.board.reloadFilters(B)}else{$("form.search").submit()}})};f.prototype.keyboardShortcuts=function(){var z=this;Mousetrap.bind("v o",function(B){var A=$(".view-overview");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v b",function(B){var A=$(".view-board");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v c",function(B){var A=$(".view-calendar");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v l",function(B){var A=$(".view-listing");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("v g",function(B){var A=$(".view-gantt");if(A.length){window.location=A.attr("href")}});Mousetrap.bind("f",function(B){B.preventDefault();var A=document.getElementById("form-search");if(A){A.focus()}});Mousetrap.bind("r",function(B){B.preventDefault();var A=$(".filter-reset").data("filter");$("#form-search").val(A);if($("#board").length){z.app.board.reloadFilters(A)}else{$("form.search").submit()}})};function n(){this.board=new k(this);this.markdown=new m();this.search=new f(this);this.swimlane=new g(this);this.dropdown=new s();this.tooltip=new r(this);this.popover=new u(this);this.task=new a(this);this.project=new o();this.subtask=new e(this);this.column=new l(this);this.file=new w(this);this.keyboardShortcuts();this.chosen();this.poll();$(".alert-fade-out").delay(5000).fadeOut(800,function(){$(this).remove()})}n.prototype.listen=function(){this.project.listen();this.popover.listen();this.markdown.listen();this.tooltip.listen();this.dropdown.listen();this.search.listen();this.task.listen();this.swimlane.listen();this.subtask.listen();this.column.listen();this.file.listen();this.search.focus();this.autoComplete();this.datePicker();this.focus()};n.prototype.refresh=function(){$(document).off();this.listen()};n.prototype.focus=function(){$("[autofocus]").each(function(z,A){$(this).focus()});$(document).on("focus",".auto-select",function(){$(this).select()});$(document).on("mouseup",".auto-select",function(z){z.preventDefault()})};n.prototype.poll=function(){window.setInterval(this.checkSession,60000)};n.prototype.keyboardShortcuts=function(){var z=this;Mousetrap.bindGlobal("mod+enter",function(){$("form").submit()});Mousetrap.bind("b",function(A){A.preventDefault();$("#board-selector").trigger("chosen:open")});Mousetrap.bindGlobal("esc",function(){z.popover.close();z.dropdown.close()})};n.prototype.checkSession=function(){if(!$(".form-login").length){$.ajax({cache:false,url:$("body").data("status-url"),statusCode:{401:function(){window.location=$("body").data("login-url")}}})}};n.prototype.datePicker=function(){$.datepicker.setDefaults($.datepicker.regional[$("body").data("js-lang")]);$(".form-date").datepicker({showOtherMonths:true,selectOtherMonths:true,dateFormat:"yy-mm-dd",constrainInput:false});$(".form-datetime").datetimepicker({controlType:"select",oneLine:true,dateFormat:"yy-mm-dd",constrainInput:false})};n.prototype.autoComplete=function(){$(".autocomplete").each(function(){var A=$(this);var B=A.data("dst-field");var z=A.data("dst-extra-field");if($("#form-"+B).val()==""){A.parent().find("input[type=submit]").attr("disabled","disabled")}A.autocomplete({source:A.data("search-url"),minLength:1,select:function(C,D){$("input[name="+B+"]").val(D.item.id);if(z){$("input[name="+z+"]").val(D.item[z])}A.parent().find("input[type=submit]").removeAttr("disabled")}})})};n.prototype.chosen=function(){$(".chosen-select").each(function(){var z=$(this).data("search-threshold");if(z===undefined){z=10}$(this).chosen({width:"180px",no_results_text:$(this).data("notfound"),disable_search_threshold:z})});$(".select-auto-redirect").change(function(){var z=new RegExp($(this).data("redirect-regex"),"g");window.location=$(this).data("redirect-url").replace(z,$(this).val())})};n.prototype.showLoadingIcon=function(){$("body").append('<span id="app-loading-icon">&nbsp;<i class="fa fa-spinner fa-spin"></i></span>')};n.prototype.hideLoadingIcon=function(){$("#app-loading-icon").remove()};n.prototype.isVisible=function(){var z="";if(typeof document.hidden!=="undefined"){z="visibilityState"}else{if(typeof document.mozHidden!=="undefined"){z="mozVisibilityState"}else{if(typeof document.msHidden!=="undefined"){z="msVisibilityState"}else{if(typeof document.webkitHidden!=="undefined"){z="webkitVisibilityState"}}}}if(z!=""){return document[z]=="visible"}return true};n.prototype.formatDuration=function(z){if(z>=86400){return Math.round(z/86400)+"d"}else{if(z>=3600){return Math.round(z/3600)+"h"}else{if(z>=60){return Math.round(z/60)+"m"}}}return z+"s"};function d(){this.pasteCatcher=null}d.prototype.execute=function(){this.initialize()};d.prototype.initialize=function(){this.destroy();if(!window.Clipboard){this.pasteCatcher=document.createElement("div");this.pasteCatcher.id="screenshot-pastezone";this.pasteCatcher.contentEditable="true";this.pasteCatcher.style.opacity=0;this.pasteCatcher.style.position="fixed";this.pasteCatcher.style.top=0;this.pasteCatcher.style.right=0;this.pasteCatcher.style.width=0;document.body.insertBefore(this.pasteCatcher,document.body.firstChild);this.pasteCatcher.focus();document.addEventListener("click",this.setFocus.bind(this));document.getElementById("screenshot-zone").addEventListener("click",this.setFocus.bind(this))}window.addEventListener("paste",this.pasteHandler.bind(this))};d.prototype.destroy=function(){if(this.pasteCatcher!=null){document.body.removeChild(this.pasteCatcher)}else{if(document.getElementById("screenshot-pastezone")){document.body.removeChild(document.getElementById("screenshot-pastezone"))}}document.removeEventListener("click",this.setFocus.bind(this));this.pasteCatcher=null};d.prototype.setFocus=function(){if(this.pasteCatcher!==null){this.pasteCatcher.focus()}};d.prototype.pasteHandler=function(E){if(E.clipboardData&&E.clipboardData.items){var C=E.clipboardData.items;if(C){for(var D=0;D<C.length;D++){if(C[D].type.indexOf("image")!==-1){var B=C[D].getAsFile();var z=new FileReader();var A=this;z.onload=function(F){A.createImage(F.target.result)};z.readAsDataURL(B)}}}}else{setTimeout(this.checkInput.bind(this),100)}};d.prototype.checkInput=function(){var z=this.pasteCatcher.childNodes[0];if(z){if(z.tagName==="IMG"){this.createImage(z.src)}}this.pasteCatcher.innerHTML=""};d.prototype.createImage=function(B){var A=new Image();A.src=B;A.onload=function(){var C=B.split("base64,");var D=C[1];$("input[name=screenshot]").val(D)};var z=document.getElementById("screenshot-zone");z.innerHTML="";z.className="screenshot-pasted";z.appendChild(A);this.destroy();this.initialize()};function w(z){this.app=z;this.files=[];this.currentFile=0}w.prototype.listen=function(){var z=document.getElementById("file-dropzone");var A=this;if(z){z.ondragover=z.ondragenter=function(B){B.stopPropagation();B.preventDefault()};z.ondrop=function(B){B.stopPropagation();B.preventDefault();A.files=B.dataTransfer.files;A.show();$("#file-error-max-size").hide()};$(document).on("click","#file-browser",function(B){B.preventDefault();$("#file-form-element").get(0).click()});$(document).on("click","#file-upload-button",function(B){B.preventDefault();A.currentFile=0;A.checkFiles()});$("#file-form-element").change(function(){A.files=document.getElementById("file-form-element").files;A.show();$("#file-error-max-size").hide()})}};w.prototype.show=function(){$("#file-list").remove();if(this.files.length>0){$("#file-upload-button").prop("disabled",false);$("#file-dropzone-inner").hide();var D=jQuery("<ul>",{id:"file-list"});for(var C=0;C<this.files.length;C++){var A=jQuery("<span>",{id:"file-percentage-"+C}).append("(0%)");var B=jQuery("<progress>",{id:"file-progress-"+C,value:0});var z=jQuery("<li>",{id:"file-label-"+C}).append(B).append("&nbsp;").append(this.files[C].name).append("&nbsp;").append(A);D.append(z)}$("#file-dropzone").append(D)}else{$("#file-dropzone-inner").show()}};w.prototype.checkFiles=function(){var z=parseInt($("#file-dropzone").data("max-size"));for(var A=0;A<this.files.length;A++){if(this.files[A].size>z){$("#file-error-max-size").show();$("#file-label-"+A).addClass("file-error");$("#file-upload-button").prop("disabled",true);return}}this.uploadFiles()};w.prototype.uploadFiles=function(){if(this.files.length>0){this.uploadFile(this.files[this.currentFile])}};w.prototype.uploadFile=function(C){var z=document.getElementById("file-dropzone");var A=z.dataset.url;var D=new XMLHttpRequest();var B=new FormData();D.upload.addEventListener("progress",this.updateProgress.bind(this));D.upload.addEventListener("load",this.transferComplete.bind(this));D.open("POST",A,true);B.append("files[]",C);D.send(B)};w.prototype.updateProgress=function(z){if(z.lengthComputable){$("#file-progress-"+this.currentFile).val(z.loaded/z.total);$("#file-percentage-"+this.currentFile).text("("+Math.floor((z.loaded/z.total)*100)+"%)")}};w.prototype.transferComplete=function(){this.currentFile++;if(this.currentFile<this.files.length){this.uploadFile(this.files[this.currentFile])}else{$("#file-upload-button").prop("disabled",true);$("#file-upload-button").parent().hide();$("#file-done").show()}};function j(){}j.prototype.execute=function(){var z=$("#calendar");z.fullCalendar({lang:$("body").data("js-lang"),editable:true,eventLimit:true,defaultView:"month",header:{left:"prev,next today",center:"title",right:"month,agendaWeek,agendaDay"},eventDrop:function(A){$.ajax({cache:false,url:z.data("save-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({task_id:A.id,date_due:A.start.format()})})},viewRender:function(){var A=z.data("check-url");var C={start:z.fullCalendar("getView").start.format(),end:z.fullCalendar("getView").end.format()};for(var B in C){A+="&"+B+"="+C[B]}$.getJSON(A,function(D){z.fullCalendar("removeEvents");z.fullCalendar("addEventSource",D);z.fullCalendar("rerenderEvents")})}})};function k(z){this.app=z;this.checkInterval=null;this.savingInProgress=false}k.prototype.execute=function(){this.app.swimlane.refresh();this.restoreColumnViewMode();this.compactView();this.poll();this.keyboardShortcuts();this.listen();this.dragAndDrop();$(window).on("load",this.columnScrolling);$(window).resize(this.columnScrolling)};k.prototype.poll=function(){var z=parseInt($("#board").attr("data-check-interval"));if(z>0){this.checkInterval=window.setInterval(this.check.bind(this),z*1000)}};k.prototype.reloadFilters=function(z){this.app.showLoadingIcon();$.ajax({cache:false,url:$("#board").data("reload-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({search:z}),success:this.refresh.bind(this),error:this.app.hideLoadingIcon.bind(this)})};k.prototype.check=function(){if(this.app.isVisible()&&!this.savingInProgress){var z=this;this.app.showLoadingIcon();$.ajax({cache:false,url:$("#board").data("check-url"),statusCode:{200:function(A){z.refresh(A)},304:function(){z.app.hideLoadingIcon()}}})}};k.prototype.save=function(C,D,z,B){var A=this;this.app.showLoadingIcon();this.savingInProgress=true;$.ajax({cache:false,url:$("#board").data("save-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({task_id:C,column_id:D,swimlane_id:B,position:z}),success:function(E){A.refresh(E);this.savingInProgress=false},error:function(){A.app.hideLoadingIcon();this.savingInProgress=false}})};k.prototype.refresh=function(z){$("#board-container").replaceWith(z);this.app.refresh();this.app.swimlane.refresh();this.app.hideLoadingIcon();this.listen();this.dragAndDrop();this.compactView();this.restoreColumnViewMode();this.columnScrolling()};k.prototype.dragAndDrop=function(){var z=this;var A={forcePlaceholderSize:true,tolerance:"pointer",connectWith:".board-task-list",placeholder:"draggable-placeholder",items:".draggable-item",stop:function(C,J){var E=J.item;var I=E.attr("data-task-id");var K=E.attr("data-position");var H=E.attr("data-column-id");var G=E.attr("data-swimlane-id");var D=E.parent().attr("data-column-id");var B=E.parent().attr("data-swimlane-id");var F=E.index()+1;E.removeClass("draggable-item-selected");if(D!=H||B!=G||F!=K){z.changeTaskState(I);z.save(I,D,F,B)}},start:function(B,C){C.item.addClass("draggable-item-selected");C.placeholder.height(C.item.height())}};if($.support.touch){$(".task-board-sort-handle").css("display","inline");A.handle=".task-board-sort-handle"}$(".board-task-list").sortable(A)};k.prototype.changeTaskState=function(A){var z=$("div[data-task-id="+A+"]");z.addClass("task-board-saving-state");z.find(".task-board-saving-icon").show()};k.prototype.listen=function(){var z=this;$(document).on("click",".task-board",function(A){if(A.target.tagName!="A"){window.location=$(this).data("task-url")}});$(document).on("click",".filter-toggle-scrolling",function(A){A.preventDefault();z.toggleCompactView()});$(document).on("click",".filter-toggle-height",function(A){A.preventDefault();z.toggleColumnScrolling()});$(document).on("click",".board-toggle-column-view",function(){z.toggleColumnViewMode($(this).data("column-id"))})};k.prototype.toggleColumnScrolling=function(){var z=localStorage.getItem("column_scroll");if(z==undefined){z=1}localStorage.setItem("column_scroll",z==0?1:0);this.columnScrolling()};k.prototype.columnScrolling=function(){if(localStorage.getItem("column_scroll")==0){var z=80;$(".filter-max-height").show();$(".filter-min-height").hide();$(".board-rotation-wrapper").css("min-height","");$(".board-task-list").each(function(){var A=$(this).height();if(A>z){z=A}});$(".board-task-list").css("min-height",z);$(".board-task-list").css("height","")}else{$(".filter-max-height").hide();$(".filter-min-height").show();if($(".board-swimlane").length>1){$(".board-task-list").each(function(){if($(this).height()>500){$(this).css("height",500)}else{$(this).css("min-height",320);$(".board-rotation-wrapper").css("min-height",320)}})}else{var z=$(window).height()-170;$(".board-task-list").css("height",z);$(".board-rotation-wrapper").css("min-height",z)}}};k.prototype.toggleCompactView=function(){var z=localStorage.getItem("horizontal_scroll")||1;localStorage.setItem("horizontal_scroll",z==0?1:0);this.compactView()};k.prototype.compactView=function(){if(localStorage.getItem("horizontal_scroll")==0){$(".filter-wide").show();$(".filter-compact").hide();$("#board-container").addClass("board-container-compact");$("#board th:not(.board-column-header-collapsed)").addClass("board-column-compact")}else{$(".filter-wide").hide();$(".filter-compact").show();$("#board-container").removeClass("board-container-compact");$("#board th").removeClass("board-column-compact")}};k.prototype.toggleCollapsedMode=function(){var z=this;this.app.showLoadingIcon();$.ajax({cache:false,url:$('.filter-display-mode:not([style="display: none;"]) a').attr("href"),success:function(A){$(".filter-display-mode").toggle();z.refresh(A)}})};k.prototype.restoreColumnViewMode=function(){var z=this;$(".board-column-header").each(function(){var A=$(this).data("column-id");if(localStorage.getItem("hidden_column_"+A)){z.hideColumn(A)}})};k.prototype.toggleColumnViewMode=function(z){if(localStorage.getItem("hidden_column_"+z)){this.showColumn(z)}else{this.hideColumn(z)}};k.prototype.hideColumn=function(z){$(".board-column-"+z+" .board-column-expanded").hide();$(".board-column-"+z+" .board-column-collapsed").show();$(".board-column-header-"+z+" .board-column-expanded").hide();$(".board-column-header-"+z+" .board-column-collapsed").show();$(".board-column-header-"+z).each(function(){$(this).removeClass("board-column-compact");$(this).addClass("board-column-header-collapsed")});$(".board-column-"+z).each(function(){$(this).addClass("board-column-task-collapsed")});$(".board-column-"+z+" .board-rotation").each(function(){$(this).css("width",$(".board-column-"+z+"").height())});localStorage.setItem("hidden_column_"+z,1)};k.prototype.showColumn=function(z){$(".board-column-"+z+" .board-column-expanded").show();$(".board-column-"+z+" .board-column-collapsed").hide();$(".board-column-header-"+z+" .board-column-expanded").show();$(".board-column-header-"+z+" .board-column-collapsed").hide();$(".board-column-header-"+z).removeClass("board-column-header-collapsed");$(".board-column-"+z).removeClass("board-column-task-collapsed");if(localStorage.getItem("horizontal_scroll")==0){$(".board-column-header-"+z).addClass("board-column-compact")}localStorage.removeItem("hidden_column_"+z)};k.prototype.keyboardShortcuts=function(){var z=this;Mousetrap.bind("c",function(){z.toggleCompactView()});Mousetrap.bind("s",function(){z.toggleCollapsedMode()});Mousetrap.bind("n",function(){z.app.popover.open($("#board").data("task-creation-url"))})};function l(z){this.app=z}l.prototype.listen=function(){this.dragAndDrop()};l.prototype.dragAndDrop=function(){var z=this;$(".draggable-row-handle").mouseenter(function(){$(this).parent().parent().addClass("draggable-item-hover")}).mouseleave(function(){$(this).parent().parent().removeClass("draggable-item-hover")});$(".columns-table tbody").sortable({forcePlaceholderSize:true,handle:"td:first i",helper:function(B,A){A.children().each(function(){$(this).width($(this).width())});return A},stop:function(B,C){var A=C.item;A.removeClass("draggable-item-selected");z.savePosition(A.data("column-id"),A.index()+1)},start:function(A,B){B.item.addClass("draggable-item-selected")}}).disableSelection()};l.prototype.savePosition=function(C,z){var B=$(".columns-table").data("save-position-url");var A=this;this.app.showLoadingIcon();$.ajax({cache:false,url:B,contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({column_id:C,position:z}),complete:function(){A.app.hideLoadingIcon()}})};function g(z){this.app=z}g.prototype.getStorageKey=function(){return"hidden_swimlanes_"+$("#board").data("project-id")};g.prototype.expand=function(A){var B=this.getAllCollapsed();var z=B.indexOf(A);if(z>-1){B.splice(z,1)}localStorage.setItem(this.getStorageKey(),JSON.stringify(B));$(".board-swimlane-columns-"+A).css("display","table-row");$(".board-swimlane-tasks-"+A).css("display","table-row");$(".hide-icon-swimlane-"+A).css("display","inline");$(".show-icon-swimlane-"+A).css("display","none")};g.prototype.collapse=function(z){var A=this.getAllCollapsed();if(A.indexOf(z)<0){A.push(z);localStorage.setItem(this.getStorageKey(),JSON.stringify(A))}$(".board-swimlane-columns-"+z+":not(:first-child)").css("display","none");$(".board-swimlane-tasks-"+z).css("display","none");$(".hide-icon-swimlane-"+z).css("display","none");$(".show-icon-swimlane-"+z).css("display","inline")};g.prototype.isCollapsed=function(z){return this.getAllCollapsed().indexOf(z)>-1};g.prototype.getAllCollapsed=function(){return JSON.parse(localStorage.getItem(this.getStorageKey()))||[]};g.prototype.refresh=function(){var A=this.getAllCollapsed();for(var z=0;z<A.length;z++){this.collapse(A[z])}};g.prototype.listen=function(){var z=this;z.dragAndDrop();$(document).on("click",".board-swimlane-toggle",function(B){B.preventDefault();var A=$(this).data("swimlane-id");if(z.isCollapsed(A)){z.expand(A)}else{z.collapse(A)}})};g.prototype.dragAndDrop=function(){var z=this;$(".draggable-row-handle").mouseenter(function(){$(this).parent().parent().addClass("draggable-item-hover")}).mouseleave(function(){$(this).parent().parent().removeClass("draggable-item-hover")});$(".swimlanes-table tbody").sortable({forcePlaceholderSize:true,handle:"td:first i",helper:function(B,A){A.children().each(function(){$(this).width($(this).width())});return A},stop:function(A,C){var B=C.item;B.removeClass("draggable-item-selected");z.savePosition(B.data("swimlane-id"),B.index()+1)},start:function(A,B){B.item.addClass("draggable-item-selected")}}).disableSelection()};g.prototype.savePosition=function(C,z){var B=$(".swimlanes-table").data("save-position-url");var A=this;this.app.showLoadingIcon();$.ajax({cache:false,url:B,contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({swimlane_id:C,position:z}),complete:function(){A.app.hideLoadingIcon()}})};function b(z){this.app=z;this.data=[];this.options={container:"#gantt-chart",showWeekends:true,allowMoves:true,allowResizes:true,cellWidth:21,cellHeight:31,slideWidth:1000,vHeaderWidth:200}}b.prototype.saveRecord=function(z){this.app.showLoadingIcon();$.ajax({cache:false,url:$(this.options.container).data("save-url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify(z),complete:this.app.hideLoadingIcon.bind(this)})};b.prototype.execute=function(){this.data=this.prepareData($(this.options.container).data("records"));var C=Math.floor((this.options.slideWidth/this.options.cellWidth)+5);var B=this.getDateRange(C);var z=B[0];var E=B[1];var A=$(this.options.container);var D=jQuery("<div>",{"class":"ganttview"});D.append(this.renderVerticalHeader());D.append(this.renderSlider(z,E));A.append(D);jQuery("div.ganttview-grid-row div.ganttview-grid-row-cell:last-child",A).addClass("last");jQuery("div.ganttview-hzheader-days div.ganttview-hzheader-day:last-child",A).addClass("last");jQuery("div.ganttview-hzheader-months div.ganttview-hzheader-month:last-child",A).addClass("last");if(!$(this.options.container).data("readonly")){this.listenForBlockResize(z);this.listenForBlockMove(z)}else{this.options.allowResizes=false;this.options.allowMoves=false}};b.prototype.renderVerticalHeader=function(){var D=jQuery("<div>",{"class":"ganttview-vtheader"});var A=jQuery("<div>",{"class":"ganttview-vtheader-item"});var C=jQuery("<div>",{"class":"ganttview-vtheader-series"});for(var z=0;z<this.data.length;z++){var B=jQuery("<span>").append(jQuery("<i>",{"class":"fa fa-info-circle tooltip",title:this.getVerticalHeaderTooltip(this.data[z])})).append("&nbsp;");if(this.data[z].type=="task"){B.append(jQuery("<a>",{href:this.data[z].link,target:"_blank",title:this.data[z].title}).append(this.data[z].title))}else{B.append(jQuery("<a>",{href:this.data[z].board_link,target:"_blank",title:$(this.options.container).data("label-board-link")}).append('<i class="fa fa-th"></i>')).append("&nbsp;").append(jQuery("<a>",{href:this.data[z].gantt_link,target:"_blank",title:$(this.options.container).data("label-gantt-link")}).append('<i class="fa fa-sliders"></i>')).append("&nbsp;").append(jQuery("<a>",{href:this.data[z].link,target:"_blank"}).append(this.data[z].title))}C.append(jQuery("<div>",{"class":"ganttview-vtheader-series-name"}).append(B))}A.append(C);D.append(A);return D};b.prototype.renderSlider=function(A,C){var z=jQuery("<div>",{"class":"ganttview-slide-container"});var B=this.getDates(A,C);z.append(this.renderHorizontalHeader(B));z.append(this.renderGrid(B));z.append(this.addBlockContainers());this.addBlocks(z,A);return z};b.prototype.renderHorizontalHeader=function(z){var F=jQuery("<div>",{"class":"ganttview-hzheader"});var D=jQuery("<div>",{"class":"ganttview-hzheader-months"});var C=jQuery("<div>",{"class":"ganttview-hzheader-days"});var B=0;for(var G in z){for(var A in z[G]){var H=z[G][A].length*this.options.cellWidth;B=B+H;D.append(jQuery("<div>",{"class":"ganttview-hzheader-month",css:{width:(H-1)+"px"}}).append($.datepicker.regional[$("body").data("js-lang")].monthNames[A]+" "+G));for(var E in z[G][A]){C.append(jQuery("<div>",{"class":"ganttview-hzheader-day"}).append(z[G][A][E].getDate()))}}}D.css("width",B+"px");C.css("width",B+"px");F.append(D).append(C);return F};b.prototype.renderGrid=function(z){var H=jQuery("<div>",{"class":"ganttview-grid"});var C=jQuery("<div>",{"class":"ganttview-grid-row"});for(var F in z){for(var A in z[F]){for(var E in z[F][A]){var B=jQuery("<div>",{"class":"ganttview-grid-row-cell"});if(this.options.showWeekends&&this.isWeekend(z[F][A][E])){B.addClass("ganttview-weekend")}C.append(B)}}}var G=jQuery("div.ganttview-grid-row-cell",C).length*this.options.cellWidth;C.css("width",G+"px");H.css("width",G+"px");for(var D=0;D<this.data.length;D++){H.append(C.clone())}return H};b.prototype.addBlockContainers=function(){var A=jQuery("<div>",{"class":"ganttview-blocks"});for(var z=0;z<this.data.length;z++){A.append(jQuery("<div>",{"class":"ganttview-block-container"}))}return A};b.prototype.addBlocks=function(A,z){var H=jQuery("div.ganttview-blocks div.ganttview-block-container",A);var B=0;for(var E=0;E<this.data.length;E++){var F=this.data[E];var I=this.daysBetween(F.start,F.end)+1;var D=this.daysBetween(z,F.start);var G=jQuery("<div>",{"class":"ganttview-block-text"});var C=jQuery("<div>",{"class":"ganttview-block tooltip"+(this.options.allowMoves?" ganttview-block-movable":""),title:this.getBarTooltip(F),css:{width:((I*this.options.cellWidth)-9)+"px","margin-left":(D*this.options.cellWidth)+"px"}}).append(G);if(I>=2){G.append(F.progress)}C.data("record",F);this.setBarColor(C,F);if(F.progress!="0%"){C.append(jQuery("<div>",{css:{"z-index":0,position:"absolute",top:0,bottom:0,"background-color":F.color.border,width:F.progress,opacity:0.4}}))}jQuery(H[B]).append(C);B=B+1}};b.prototype.getVerticalHeaderTooltip=function(A){var F="";if(A.type=="task"){F="<strong>"+A.column_title+"</strong> ("+A.progress+")<br/>"+A.title}else{var C=["managers","members"];for(var B in C){var D=C[B];if(!jQuery.isEmptyObject(A.users[D])){var E=jQuery("<ul>");for(var z in A.users[D]){E.append(jQuery("<li>").append(A.users[D][z]))}F+="<p><strong>"+$(this.options.container).data("label-"+D)+"</strong></p>"+E[0].outerHTML}}}return F};b.prototype.getBarTooltip=function(z){var A="";if(z.not_defined){A=$(this.options.container).data("label-not-defined")}else{if(z.type=="task"){A="<strong>"+z.progress+"</strong><br/>"+$(this.options.container).data("label-assignee")+" "+(z.assignee?z.assignee:"")+"<br/>"}A+=$(this.options.container).data("label-start-date")+" "+$.datepicker.formatDate("yy-mm-dd",z.start)+"<br/>";A+=$(this.options.container).data("label-end-date")+" "+$.datepicker.formatDate("yy-mm-dd",z.end)}return A};b.prototype.setBarColor=function(A,z){if(z.not_defined){A.addClass("ganttview-block-not-defined")}else{A.css("background-color",z.color.background);A.css("border-color",z.color.border)}};b.prototype.listenForBlockResize=function(z){var A=this;jQuery("div.ganttview-block",this.options.container).resizable({grid:this.options.cellWidth,handles:"e,w",delay:300,stop:function(){var B=jQuery(this);A.updateDataAndPosition(B,z);A.saveRecord(B.data("record"))}})};b.prototype.listenForBlockMove=function(z){var A=this;jQuery("div.ganttview-block",this.options.container).draggable({axis:"x",delay:300,grid:[this.options.cellWidth,this.options.cellWidth],stop:function(){var B=jQuery(this);A.updateDataAndPosition(B,z);A.saveRecord(B.data("record"))}})};b.prototype.updateDataAndPosition=function(E,C){var z=jQuery("div.ganttview-slide-container",this.options.container);var I=z.scrollLeft();var F=E.offset().left-z.offset().left-1+I;var H=E.data("record");H.not_defined=false;this.setBarColor(E,H);var B=Math.round(F/this.options.cellWidth);var G=this.addDays(this.cloneDate(C),B);H.start=G;var A=E.outerWidth();var D=Math.round(A/this.options.cellWidth)-1;H.end=this.addDays(this.cloneDate(G),D);if(H.type==="task"&&D>0){jQuery("div.ganttview-block-text",E).text(H.progress)}E.attr("title",this.getBarTooltip(H));E.data("record",H);E.css("top","").css("left","").css("position","relative").css("margin-left",F+"px")};b.prototype.getDates=function(D,z){var C=[];C[D.getFullYear()]=[];C[D.getFullYear()][D.getMonth()]=[D];var B=D;while(this.compareDate(B,z)==-1){var A=this.addDays(this.cloneDate(B),1);if(!C[A.getFullYear()]){C[A.getFullYear()]=[]}if(!C[A.getFullYear()][A.getMonth()]){C[A.getFullYear()][A.getMonth()]=[]}C[A.getFullYear()][A.getMonth()].push(A);B=A}return C};b.prototype.prepareData=function(B){for(var A=0;A<B.length;A++){var C=new Date(B[A].start[0],B[A].start[1]-1,B[A].start[2],0,0,0,0);B[A].start=C;var z=new Date(B[A].end[0],B[A].end[1]-1,B[A].end[2],0,0,0,0);B[A].end=z}return B};b.prototype.getDateRange=function(B){var E=new Date();var A=new Date();for(var C=0;C<this.data.length;C++){var D=new Date();D.setTime(Date.parse(this.data[C].start));var z=new Date();z.setTime(Date.parse(this.data[C].end));if(C==0){E=D;A=z}if(this.compareDate(E,D)==1){E=D}if(this.compareDate(A,z)==-1){A=z}}if(this.daysBetween(E,A)<B){A=this.addDays(this.cloneDate(E),B)}E.setDate(E.getDate()-1);return[E,A]};b.prototype.daysBetween=function(C,z){if(!C||!z){return 0}var B=0,A=this.cloneDate(C);while(this.compareDate(A,z)==-1){B=B+1;this.addDays(A,1)}return B};b.prototype.isWeekend=function(z){return z.getDay()%6==0};b.prototype.cloneDate=function(z){return new Date(z.getTime())};b.prototype.addDays=function(z,A){z.setDate(z.getDate()+A*1);return z};b.prototype.compareDate=function(A,z){if(isNaN(A)||isNaN(z)){throw new Error(A+" - "+z)}else{if(A instanceof Date&&z instanceof Date){return(A<z)?-1:(A>z)?1:0}else{throw new TypeError(A+" - "+z)}}};function a(z){this.app=z}a.prototype.listen=function(){var z=this;var A=0;$(document).on("click",".color-square",function(){$(".color-square-selected").removeClass("color-square-selected");$(this).addClass("color-square-selected");$("#form-color_id").val($(this).data("color-id"))});$(document).on("click",".assign-me",function(D){D.preventDefault();var B=$(this).data("current-id");var C="#"+$(this).data("target-id");if($(C+" option[value="+B+"]").length){$(C).val(B)}});$(document).on("change","select.task-reload-project-destination",function(){if(A>0){$(this).val(A)}else{A=$(this).val();var B=$(this).data("redirect").replace(/PROJECT_ID/g,A);$(".loading-icon").show();$.ajax({type:"GET",url:B,success:function(D,E,C){A=0;$(".loading-icon").hide();z.app.popover.afterSubmit(D,C,z.app.popover)}})}})};function o(){}o.prototype.listen=function(){$(".project-change-role").on("change",function(){$.ajax({cache:false,url:$(this).data("url"),contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({id:$(this).data("id"),role:$(this).val()})})});$("#project-creation-form #form-src_project_id").on("change",function(){var z=$(this).val();if(z==0){$(".project-creation-options").hide()}else{$(".project-creation-options").show()}})};function e(z){this.app=z}e.prototype.listen=function(){var z=this;this.dragAndDrop();$(document).on("click",".subtask-toggle-status",function(B){B.preventDefault();var A=$(this);$.ajax({cache:false,url:A.attr("href"),success:function(C){if(A.hasClass("subtask-refresh-table")){$(".subtasks-table").replaceWith(C)}else{A.replaceWith(C)}z.dragAndDrop()}})});$(document).on("click",".subtask-toggle-timer",function(B){B.preventDefault();var A=$(this);$.ajax({cache:false,url:A.attr("href"),success:function(C){$(".subtasks-table").replaceWith(C);z.dragAndDrop()}})})};e.prototype.dragAndDrop=function(){var z=this;$(".draggable-row-handle").mouseenter(function(){$(this).parent().parent().addClass("draggable-item-hover")}).mouseleave(function(){$(this).parent().parent().removeClass("draggable-item-hover")});$(".subtasks-table tbody").sortable({forcePlaceholderSize:true,handle:"td:first i",helper:function(B,A){A.children().each(function(){$(this).width($(this).width())});return A},stop:function(A,B){var C=B.item;C.removeClass("draggable-item-selected");z.savePosition(C.data("subtask-id"),C.index()+1)},start:function(A,B){B.item.addClass("draggable-item-selected")}}).disableSelection()};e.prototype.savePosition=function(C,z){var B=$(".subtasks-table").data("save-position-url");var A=this;this.app.showLoadingIcon();$.ajax({cache:false,url:B,contentType:"application/json",type:"POST",processData:false,data:JSON.stringify({subtask_id:C,position:z}),complete:function(){A.app.hideLoadingIcon()}})};function t(){}t.prototype.execute=function(){var B=$("#chart").data("metrics");var A=[];for(var z=0;z<B.length;z++){A.push([B[z].column_title,B[z].nb_tasks])}c3.generate({data:{columns:A,type:"donut"}})};function q(){}q.prototype.execute=function(){var B=$("#chart").data("metrics");var A=[];for(var z=0;z<B.length;z++){A.push([B[z].user,B[z].nb_tasks])}c3.generate({data:{columns:A,type:"donut"}})};function c(){}c.prototype.execute=function(){var F=$("#chart").data("metrics");var E=[];var z=[];var A=[];var C=d3.time.format("%Y-%m-%d");var G=d3.time.format($("#chart").data("date-format"));for(var D=0;D<F.length;D++){for(var B=0;B<F[D].length;B++){if(D==0){E.push([F[D][B]]);if(B>0){z.push(F[D][B])}}else{E[B].push(F[D][B]);if(B==0){A.push(G(C.parse(F[D][B])))}}}}c3.generate({data:{columns:E,type:"area-spline",groups:[z]},axis:{x:{type:"category",categories:A}}})};function p(){}p.prototype.execute=function(){var E=$("#chart").data("metrics");var D=[[$("#chart").data("label-total")]];var z=[];var B=d3.time.format("%Y-%m-%d");var F=d3.time.format($("#chart").data("date-format"));for(var C=0;C<E.length;C++){for(var A=0;A<E[C].length;A++){if(C==0){D.push([E[C][A]])}else{D[A+1].push(E[C][A]);if(A>0){if(D[0][C]==undefined){D[0].push(0)}D[0][C]+=E[C][A]}if(A==0){z.push(F(B.parse(E[C][A])))}}}}c3.generate({data:{columns:D},axis:{x:{type:"category",categories:z}}})};function h(z){this.app=z}h.prototype.execute=function(){var B=$("#chart").data("metrics");var C=[$("#chart").data("label")];var z=[];for(var A in B){C.push(B[A].average);z.push(B[A].title)}c3.generate({data:{columns:[C],type:"bar"},bar:{width:{ratio:0.5}},axis:{x:{type:"category",categories:z},y:{tick:{format:this.app.formatDuration}}},legend:{show:false}})};function y(z){this.app=z}y.prototype.execute=function(){var B=$("#chart").data("metrics");var C=[$("#chart").data("label")];var z=[];for(var A=0;A<B.length;A++){C.push(B[A].time_spent);z.push(B[A].title)}c3.generate({data:{columns:[C],type:"bar"},bar:{width:{ratio:0.5}},axis:{x:{type:"category",categories:z},y:{tick:{format:this.app.formatDuration}}},legend:{show:false}})};function v(z){this.app=z}v.prototype.execute=function(){var F=$("#chart").data("metrics");var E=[$("#chart").data("label-cycle")];var B=[$("#chart").data("label-lead")];var A=[];var D={};D[$("#chart").data("label-cycle")]="area";D[$("#chart").data("label-lead")]="area-spline";var z={};z[$("#chart").data("label-lead")]="#afb42b";z[$("#chart").data("label-cycle")]="#4e342e";for(var C=0;C<F.length;C++){E.push(parseInt(F[C].avg_cycle_time));B.push(parseInt(F[C].avg_lead_time));A.push(F[C].day)}c3.generate({data:{columns:[B,E],types:D,colors:z},axis:{x:{type:"category",categories:A},y:{tick:{format:this.app.formatDuration}}}})};function i(z){this.app=z}i.prototype.execute=function(){var E=$("#chart").data("metrics");var A=$("#chart").data("label-open");var z=$("#chart").data("label-closed");var F=[$("#chart").data("label-spent")];var D=[$("#chart").data("label-estimated")];var C=[];for(var B in E){F.push(parseFloat(E[B].time_spent));D.push(parseFloat(E[B].time_estimated));C.push(B=="open"?A:z)}c3.generate({data:{columns:[F,D],type:"bar"},bar:{width:{ratio:0.2}},axis:{x:{type:"category",categories:C}},legend:{show:true}})};function x(){this.routes={}}x.prototype.addRoute=function(A,z){this.routes[A]=z};x.prototype.dispatch=function(A){for(var B in this.routes){if(document.getElementById(B)){var z=Object.create(this.routes[B].prototype);this.routes[B].apply(z,[A]);z.execute();break}}};jQuery(document).ready(function(){var A=new n();var z=new x();z.addRoute("board",k);z.addRoute("calendar",j);z.addRoute("screenshot-zone",d);z.addRoute("analytic-task-repartition",t);z.addRoute("analytic-user-repartition",q);z.addRoute("analytic-cfd",c);z.addRoute("analytic-burndown",p);z.addRoute("analytic-avg-time-column",h);z.addRoute("analytic-task-time-column",y);z.addRoute("analytic-lead-cycle-time",v);z.addRoute("analytic-compare-hours",i);z.addRoute("gantt-chart",b);z.dispatch(A);A.listen()})})(); \ No newline at end of file
diff --git a/assets/js/src/App.js b/assets/js/src/App.js
index b20a73c1..56efd706 100644
--- a/assets/js/src/App.js
+++ b/assets/js/src/App.js
@@ -16,7 +16,7 @@ function App() {
this.poll();
// Alert box fadeout
- $(".alert-fade-out").delay(4000).fadeOut(800, function() {
+ $(".alert-fade-out").delay(5000).fadeOut(800, function() {
$(this).remove();
});
}