diff options
author | Frederic Guillot <fred@kanboard.net> | 2017-01-08 15:31:33 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2017-01-08 15:31:33 -0500 |
commit | ca00b8cf532bd93419e3f4bc46f9dde5caa90eec (patch) | |
tree | c2c2ca9b795daed99b48d5c44841feb649dd1a56 /app | |
parent | b3a450bace8461fb7989d5406b9d9ec644d7df4a (diff) |
Display project exports in modal box
Diffstat (limited to 'app')
-rw-r--r-- | app/Controller/ExportController.php | 34 | ||||
-rw-r--r-- | app/Template/export/header.php | 17 | ||||
-rw-r--r-- | app/Template/export/sidebar.php | 17 | ||||
-rw-r--r-- | app/Template/export/subtasks.php | 16 | ||||
-rw-r--r-- | app/Template/export/summary.php | 16 | ||||
-rw-r--r-- | app/Template/export/tasks.php | 16 | ||||
-rw-r--r-- | app/Template/export/transitions.php | 17 | ||||
-rw-r--r-- | app/Template/project_header/dropdown.php | 2 |
8 files changed, 60 insertions, 75 deletions
diff --git a/app/Controller/ExportController.php b/app/Controller/ExportController.php index b7ac92aa..19f73a7c 100644 --- a/app/Controller/ExportController.php +++ b/app/Controller/ExportController.php @@ -24,27 +24,29 @@ class ExportController extends BaseController private function common($model, $method, $filename, $action, $page_title) { $project = $this->getProject(); - $from = $this->request->getStringParam('from'); - $to = $this->request->getStringParam('to'); - if ($from && $to) { - $data = $this->$model->$method($project['id'], $from, $to); - $this->response->withFileDownload($filename.'.csv'); - $this->response->csv($data); - } else { + if ($this->request->isPost()) { + $values = $this->request->getValues(); + $from = empty($values['from']) ? '' : $values['from']; + $to = empty($values['to']) ? '' : $values['to']; - $this->response->html($this->helper->layout->project('export/'.$action, array( - 'values' => array( - 'controller' => 'ExportController', - 'action' => $action, + if ($from && $to) { + $data = $this->$model->$method($project['id'], $from, $to); + $this->response->withFileDownload($filename.'.csv'); + $this->response->csv($data); + return; + } + } else { + $this->response->html($this->template->render('export/'.$action, array( + 'values' => array( 'project_id' => $project['id'], - 'from' => $from, - 'to' => $to, + 'from' => '', + 'to' => '', ), - 'errors' => array(), + 'errors' => array(), 'project' => $project, - 'title' => $page_title, - ), 'export/sidebar')); + 'title' => $page_title, + ))); } } diff --git a/app/Template/export/header.php b/app/Template/export/header.php new file mode 100644 index 00000000..35591352 --- /dev/null +++ b/app/Template/export/header.php @@ -0,0 +1,17 @@ +<div class="page-header"> + <h2><?= $this->text->e($project['name']) ?> > <?= $title ?></h2> + <ul> + <li <?= $this->app->checkMenuSelection('ExportController', 'tasks') ?>> + <?= $this->modal->replaceLink(t('Tasks'), 'ExportController', 'tasks', array('project_id' => $project['id'])) ?> + </li> + <li <?= $this->app->checkMenuSelection('ExportController', 'subtasks') ?>> + <?= $this->modal->replaceLink(t('Subtasks'), 'ExportController', 'subtasks', array('project_id' => $project['id'])) ?> + </li> + <li <?= $this->app->checkMenuSelection('ExportController', 'transitions') ?>> + <?= $this->modal->replaceLink(t('Task transitions'), 'ExportController', 'transitions', array('project_id' => $project['id'])) ?> + </li> + <li <?= $this->app->checkMenuSelection('ExportController', 'summary') ?>> + <?= $this->modal->replaceLink(t('Daily project summary'), 'ExportController', 'summary', array('project_id' => $project['id'])) ?> + </li> + </ul> +</div> diff --git a/app/Template/export/sidebar.php b/app/Template/export/sidebar.php deleted file mode 100644 index 463c0cee..00000000 --- a/app/Template/export/sidebar.php +++ /dev/null @@ -1,17 +0,0 @@ -<div class="sidebar"> - <ul> - <li <?= $this->app->checkMenuSelection('ExportController', 'tasks') ?>> - <?= $this->url->link(t('Tasks'), 'ExportController', 'tasks', array('project_id' => $project['id'])) ?> - </li> - <li <?= $this->app->checkMenuSelection('ExportController', 'subtasks') ?>> - <?= $this->url->link(t('Subtasks'), 'ExportController', 'subtasks', array('project_id' => $project['id'])) ?> - </li> - <li <?= $this->app->checkMenuSelection('ExportController', 'transitions') ?>> - <?= $this->url->link(t('Task transitions'), 'ExportController', 'transitions', array('project_id' => $project['id'])) ?> - </li> - <li <?= $this->app->checkMenuSelection('ExportController', 'summary') ?>> - <?= $this->url->link(t('Daily project summary'), 'ExportController', 'summary', array('project_id' => $project['id'])) ?> - </li> - <?= $this->hook->render('template:export:sidebar') ?> - </ul> -</div> diff --git a/app/Template/export/subtasks.php b/app/Template/export/subtasks.php index 959f0e47..0e47772b 100644 --- a/app/Template/export/subtasks.php +++ b/app/Template/export/subtasks.php @@ -1,20 +1,16 @@ -<div class="page-header"> - <h2><?= t('Subtasks export') ?></h2> -</div> +<?= $this->render('export/header', array('project' => $project, 'title' => $title)) ?> <p class="alert alert-info"><?= t('This report contains all subtasks information for the given date range.') ?></p> -<form method="get" action="?" autocomplete="off"> - - <?= $this->form->hidden('controller', $values) ?> - <?= $this->form->hidden('action', $values) ?> +<form class="js-modal-ignore-form" method="post" action="<?= $this->url->href('ExportController', 'subtasks', array('project_id' => $project['id'])) ?>" autocomplete="off"> + <?= $this->form->csrf() ?> <?= $this->form->hidden('project_id', $values) ?> <?= $this->form->date(t('Start date'), 'from', $values) ?> <?= $this->form->date(t('End date'), 'to', $values) ?> - <div class="form-help"><?= t('Others formats accepted: %s and %s', date('Y-m-d'), date('Y_m_d')) ?></div> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Execute') ?></button> + <button type="submit" class="btn btn-blue js-form-export"><?= t('Export') ?></button> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'ExportController', 'subtasks', array('project_id' => $project['id']), false, 'js-modal-close') ?> </div> </form> diff --git a/app/Template/export/summary.php b/app/Template/export/summary.php index a7483fcb..7dc7482f 100644 --- a/app/Template/export/summary.php +++ b/app/Template/export/summary.php @@ -1,20 +1,16 @@ -<div class="page-header"> - <h2><?= t('Daily project summary export') ?></h2> -</div> +<?= $this->render('export/header', array('project' => $project, 'title' => $title)) ?> <p class="alert alert-info"><?= t('This export contains the number of tasks per column grouped per day.') ?></p> -<form method="get" action="?" autocomplete="off"> - <?= $this->form->hidden('controller', $values) ?> - <?= $this->form->hidden('action', $values) ?> +<form class="js-modal-ignore-form" method="post" action="<?= $this->url->href('ExportController', 'summary', array('project_id' => $project['id'])) ?>" autocomplete="off"> + <?= $this->form->csrf() ?> <?= $this->form->hidden('project_id', $values) ?> - <?= $this->form->date(t('Start date'), 'from', $values) ?> <?= $this->form->date(t('End date'), 'to', $values) ?> - <div class="form-help"><?= t('Others formats accepted: %s and %s', date('Y-m-d'), date('Y_m_d')) ?></div> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Execute') ?></button> + <button type="submit" class="btn btn-blue js-form-export"><?= t('Export') ?></button> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'ExportController', 'summary', array('project_id' => $project['id']), false, 'js-modal-close') ?> </div> </form> diff --git a/app/Template/export/tasks.php b/app/Template/export/tasks.php index ce1c869e..232ff8eb 100644 --- a/app/Template/export/tasks.php +++ b/app/Template/export/tasks.php @@ -1,20 +1,16 @@ -<div class="page-header"> - <h2><?= t('Tasks exportation') ?></h2> -</div> +<?= $this->render('export/header', array('project' => $project, 'title' => $title)) ?> <p class="alert alert-info"><?= t('This report contains all tasks information for the given date range.') ?></p> -<form method="get" action="?" autocomplete="off"> - <?= $this->form->hidden('controller', $values) ?> - <?= $this->form->hidden('action', $values) ?> +<form class="js-modal-ignore-form" method="post" action="<?= $this->url->href('ExportController', 'tasks', array('project_id' => $project['id'])) ?>" autocomplete="off"> + <?= $this->form->csrf() ?> <?= $this->form->hidden('project_id', $values) ?> - <?= $this->form->date(t('Start date'), 'from', $values) ?> <?= $this->form->date(t('End date'), 'to', $values) ?> - <div class="form-help"><?= t('Others formats accepted: %s and %s', date('Y-m-d'), date('Y_m_d')) ?></div> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Execute') ?></button> + <button type="submit" class="btn btn-blue js-form-export"><?= t('Export') ?></button> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'ExportController', 'tasks', array('project_id' => $project['id']), false, 'js-modal-close') ?> </div> </form> diff --git a/app/Template/export/transitions.php b/app/Template/export/transitions.php index 7cd355db..4f3749b8 100644 --- a/app/Template/export/transitions.php +++ b/app/Template/export/transitions.php @@ -1,21 +1,16 @@ -<div class="page-header"> - <h2><?= t('Task transitions export') ?></h2> -</div> +<?= $this->render('export/header', array('project' => $project, 'title' => $title)) ?> <p class="alert alert-info"><?= t('This report contains all column moves for each task with the date, the user and the time spent for each transition.') ?></p> -<form method="get" action="?" autocomplete="off"> - - <?= $this->form->hidden('controller', $values) ?> - <?= $this->form->hidden('action', $values) ?> +<form class="js-modal-ignore-form" method="post" action="<?= $this->url->href('ExportController', 'transitions', array('project_id' => $project['id'])) ?>" autocomplete="off"> + <?= $this->form->csrf() ?> <?= $this->form->hidden('project_id', $values) ?> - <?= $this->form->date(t('Start date'), 'from', $values) ?> <?= $this->form->date(t('End date'), 'to', $values) ?> - <div class="form-help"><?= t('Others formats accepted: %s and %s', date('Y-m-d'), date('Y_m_d')) ?></div> - <div class="form-actions"> - <button type="submit" class="btn btn-blue"><?= t('Execute') ?></button> + <button type="submit" class="btn btn-blue js-form-export"><?= t('Export') ?></button> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'ExportController', 'transitions', array('project_id' => $project['id']), false, 'js-modal-close') ?> </div> </form> diff --git a/app/Template/project_header/dropdown.php b/app/Template/project_header/dropdown.php index 96b26890..83c2b97f 100644 --- a/app/Template/project_header/dropdown.php +++ b/app/Template/project_header/dropdown.php @@ -52,7 +52,7 @@ <?php if ($this->user->hasProjectAccess('ExportController', 'tasks', $project['id'])): ?> <li> - <?= $this->url->icon('upload', t('Exports'), 'ExportController', 'tasks', array('project_id' => $project['id'])) ?> + <?= $this->modal->medium('upload', t('Exports'), 'ExportController', 'tasks', array('project_id' => $project['id'])) ?> </li> <?php endif ?> |