From e6c4efd95f2c72252dadb3078fbc1d93e274e949 Mon Sep 17 00:00:00 2001 From: Franky Van Liedekerke Date: Thu, 2 Apr 2020 13:09:49 +0200 Subject: [PATCH 1/6] make SubtaskTimeTrackingExportCommand work and export to CSV, not html --- Console/AllSubtaskTimeTrackingExportCommand.php | 4 ++-- Console/SubtaskTimeTrackingExportCommand.php | 5 +++-- Export/SubtaskTimeTrackingExport.php | 6 ++++-- Plugin.php | 1 + 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Console/AllSubtaskTimeTrackingExportCommand.php b/Console/AllSubtaskTimeTrackingExportCommand.php index 6a56aa2..b148b34 100644 --- a/Console/AllSubtaskTimeTrackingExportCommand.php +++ b/Console/AllSubtaskTimeTrackingExportCommand.php @@ -2,7 +2,7 @@ namespace Kanboard\Plugin\Timetrackingeditor\Console; -use Kanboard\Plugin\Timetrackingeditor\Html; +use Kanboard\Core\Csv; use Kanboard\Model\SubtaskTimeTrackingModel; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; @@ -23,7 +23,7 @@ protected function execute(InputInterface $input, OutputInterface $output) $data = $this->subtaskTimeTrackingExport->exportAll(); if (is_array($data)) { - Html::output($data); + Csv::output($data); } } } diff --git a/Console/SubtaskTimeTrackingExportCommand.php b/Console/SubtaskTimeTrackingExportCommand.php index 4f6e638..e8d1376 100644 --- a/Console/SubtaskTimeTrackingExportCommand.php +++ b/Console/SubtaskTimeTrackingExportCommand.php @@ -1,12 +1,13 @@ getAllSubtasksTimeTracking(); - $results = array($this->getFormats()); + $results = array(); $results[] = $this->getColumns(); foreach ($subtaskstt as $subtasktt) { @@ -124,7 +124,8 @@ public function format(array $subtasktt) $values[] = $subtasktt['subtask_id']; $values[] = $this->helper->dt->date($subtasktt['start']); $values[] = $this->helper->dt->date($subtasktt['end']); - $values[] = str_replace(".",",",$subtasktt['time_spent']); + #$values[] = str_replace(".",",",$subtasktt['time_spent']); + $values[] = $subtasktt['time_spent']; $values[] = $subtasktt['is_billable']; $values[] = $this->helper->text->markdown($subtasktt['comment']); $values[] = $subtasktt['task_id']; @@ -175,6 +176,7 @@ public function getSubtasksTimeTracking($project_id, $from, $to) ProjectModel::TABLE.'.name AS project_name', TaskModel::TABLE.'.title AS task_title', TaskModel::TABLE.'.color_id', + TaskModel::TABLE.'.reference as reference', UserModel::TABLE.'.username', UserModel::TABLE.'.name AS user_fullname' ) diff --git a/Plugin.php b/Plugin.php index 6ea81f8..b244d47 100644 --- a/Plugin.php +++ b/Plugin.php @@ -17,6 +17,7 @@ public function initialize() $this->helper->register("subtaskPermission", "Kanboard\Plugin\Timetrackingeditor\Helper\SubtaskPermissionHelper"); + $this->container["cli"]->add(new SubtaskTimeTrackingExportCommand($this->container)); $this->container["cli"]->add(new AllSubtaskTimeTrackingExportCommand($this->container)); } From 36ebf2efb05941c711d5a5e9ade2d17fe9beda81 Mon Sep 17 00:00:00 2001 From: Franky Van Liedekerke Date: Thu, 2 Apr 2020 13:14:25 +0200 Subject: [PATCH 2/6] remove css part that interferes with latest kanboard code to set timespend immediately --- assets/css/timetrackingeditor.css | 6 ------ 1 file changed, 6 deletions(-) diff --git a/assets/css/timetrackingeditor.css b/assets/css/timetrackingeditor.css index 8947a9f..f2a9d58 100644 --- a/assets/css/timetrackingeditor.css +++ b/assets/css/timetrackingeditor.css @@ -1,9 +1,3 @@ .right { text-align: right; } - -:not(.timetracking) > #form-time_spent { - border-color: grey; - background-color: lightgrey; - pointer-events:none; -} \ No newline at end of file From e543f8477e506449d9865b9cfbaa30b97a3c0eb2 Mon Sep 17 00:00:00 2001 From: Franky Van Liedekerke Date: Mon, 20 Apr 2020 17:11:18 +0200 Subject: [PATCH 3/6] use timer template override, so you can easily add time entries from within the main overview too --- Template/subtask/table.php | 89 -------------------------------------- Template/subtask/timer.php | 22 ++++++++++ 2 files changed, 22 insertions(+), 89 deletions(-) delete mode 100644 Template/subtask/table.php create mode 100644 Template/subtask/timer.php diff --git a/Template/subtask/table.php b/Template/subtask/table.php deleted file mode 100644 index fa7f62f..0000000 --- a/Template/subtask/table.php +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - subtask->renderToggleStatus($task, $subtask, "table") ?> - - subtask->getTitle($subtask) ?> - - - - text->e($subtask['name'] ?: $subtask['username']) ?> - - -
    -
  • - - text->e($subtask['time_spent']).'h' ?> - - - - text->e($subtask['time_estimated']).'h' ?> - - - text->e($subtask['time_billable']).'h' ?> - - -
  • - user->getId()): ?> -
  • - - modal->medium("pause",t('Stop timer'), 'TimeTrackingEditorController', 'stop', - array('plugin' => 'Timetrackingeditor', - 'project_id' => $task['project_id'], - 'task_id' => $subtask['task_id'], - 'subtask_id' => $subtask['id'])) ?> - (dt->age($subtask['timer_start_date']) ?>) - - modal->medium("play-circle-o",t('Start timer'), 'TimeTrackingEditorController', 'start', - array('plugin' => 'Timetrackingeditor', - 'project_id' => $task['project_id'], - 'task_id' => $subtask['task_id'], - 'subtask_id' => $subtask['id'])) ?> - -
  • - -
-
- render('subtask/menu', array( - 'task' => $task, - 'subtask' => $subtask, - )) ?> - - modal->medium("clock-o", t('New'), 'TimeTrackingEditorController', - 'create', array( - 'plugin' => 'Timetrackingeditor', - 'task_id' => $task['id'], - 'project_id' => $task['project_id'], - 'subtask_id' => $subtask['id'])) ?> -
- diff --git a/Template/subtask/timer.php b/Template/subtask/timer.php new file mode 100644 index 0000000..bc37f37 --- /dev/null +++ b/Template/subtask/timer.php @@ -0,0 +1,22 @@ + + + + + + / + + + + + + user->hasProjectAccess('SubtaskController', 'edit', $task['project_id']) && $subtask['user_id'] == $this->user->getId()): ?> + subtask->renderTimer($task, $subtask) ?> + modal->medium("clock-o", t('New'), 'TimeTrackingEditorController', + 'create', array( + 'plugin' => 'Timetrackingeditor', + 'task_id' => $task['id'], + 'project_id' => $task['project_id'], + 'subtask_id' => $subtask['id'])) ?> + + + From e376133abb0d7eaaebff37fdc9ef602ba3e24f4d Mon Sep 17 00:00:00 2001 From: Franky Van Liedekerke Date: Thu, 21 May 2020 10:10:23 +0200 Subject: [PATCH 4/6] add missing use of SubtaskTimeTrackingExportCommand --- Plugin.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Plugin.php b/Plugin.php index b244d47..9a2f71d 100644 --- a/Plugin.php +++ b/Plugin.php @@ -5,6 +5,7 @@ use Kanboard\Core\Translator; use Kanboard\Core\Plugin\Base; use Kanboard\Plugin\Timetrackingeditor\Model\SubtaskTimeTrackingModel; +use Kanboard\Plugin\Timetrackingeditor\Console\SubtaskTimeTrackingExportCommand; use Kanboard\Plugin\Timetrackingeditor\Console\AllSubtaskTimeTrackingExportCommand; class Plugin extends Base @@ -13,7 +14,7 @@ public function initialize() { $this->hook->on("template:layout:css", array("template" => "plugins/Timetrackingeditor/assets/css/timetrackingeditor.css")); $this->template->setTemplateOverride('task/time_tracking_details', 'timetrackingeditor:time_tracking_editor'); - $this->template->setTemplateOverride('subtask/table', 'timetrackingeditor:subtask/table'); + $this->template->setTemplateOverride('subtask/timer', 'timetrackingeditor:subtask/timer'); $this->helper->register("subtaskPermission", "Kanboard\Plugin\Timetrackingeditor\Helper\SubtaskPermissionHelper"); From 5c32709c3659cb6e008f9f20359176ccf4322d5c Mon Sep 17 00:00:00 2001 From: Franky Van Liedekerke Date: Mon, 25 May 2020 15:55:47 +0200 Subject: [PATCH 5/6] export to datetime --- Export/SubtaskTimeTrackingExport.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Export/SubtaskTimeTrackingExport.php b/Export/SubtaskTimeTrackingExport.php index 9634b56..fffbca0 100644 --- a/Export/SubtaskTimeTrackingExport.php +++ b/Export/SubtaskTimeTrackingExport.php @@ -122,8 +122,8 @@ public function format(array $subtasktt) $values[] = $subtasktt['id']; $values[] = $subtasktt['user_id']; $values[] = $subtasktt['subtask_id']; - $values[] = $this->helper->dt->date($subtasktt['start']); - $values[] = $this->helper->dt->date($subtasktt['end']); + $values[] = $this->helper->dt->datetime($subtasktt['start']); + $values[] = $this->helper->dt->datetime($subtasktt['end']); #$values[] = str_replace(".",",",$subtasktt['time_spent']); $values[] = $subtasktt['time_spent']; $values[] = $subtasktt['is_billable']; From 91b819748be2c8ec638b7eb6420b88443577fd6b Mon Sep 17 00:00:00 2001 From: Franky Van Liedekerke Date: Mon, 25 May 2020 15:56:01 +0200 Subject: [PATCH 6/6] add SubtaskTimeTrackingExportCommand to getClasses --- Plugin.php | 1 + 1 file changed, 1 insertion(+) diff --git a/Plugin.php b/Plugin.php index 9a2f71d..f94682e 100644 --- a/Plugin.php +++ b/Plugin.php @@ -44,6 +44,7 @@ public function getClasses() 'SubtaskTitleFilter' ), 'Plugin\Timetrackingeditor\Console' => array( + 'SubtaskTimeTrackingExportCommand', 'AllSubtaskTimeTrackingExportCommand' ), 'Plugin\Timetrackingeditor\Controller' => array(