diff --git a/app/Controller/DashboardsController.php b/app/Controller/DashboardsController.php index efa8ee962..1317b7ed2 100644 --- a/app/Controller/DashboardsController.php +++ b/app/Controller/DashboardsController.php @@ -382,4 +382,32 @@ class DashboardsController extends AppController $this->set('data', $data); } } + + public function deleteTemplate($id) + { + $conditions = array(); + if (Validation::uuid($id)) { + $conditions['AND'][] = array('Dashboard.uuid' => $id); + } else { + $conditions['AND'][] = array('Dashboard.id' => $id); + } + if (!$this->_isSiteAdmin()) { + $conditions['AND'][] = array('Dashboard.user_id' => $this->Auth->user('id')); + } + $dashboard = $this->Dashboard->find('first', array( + 'conditions' => $conditions, + 'recursive' => -1 + )); + if (empty($dashboard)) { + throw new NotFoundException(__('Invalid dashboard template.')); + } + $this->Dashboard->delete($dashboard['Dashboard']['id']); + $message = __('Dashboard template removed.'); + if ($this->_isRest()) { + return $this->RestResponse->saveSuccessResponse('Dashboard', 'delete', $id, false, $message); + } else { + $this->Flash->success($message); + $this->redirect($this->baseurl . '/dashboards/listTemplates'); + } + } } diff --git a/app/View/Dashboards/list_templates.ctp b/app/View/Dashboards/list_templates.ctp index 33a373a1b..fc9dfcefb 100644 --- a/app/View/Dashboards/list_templates.ctp +++ b/app/View/Dashboards/list_templates.ctp @@ -76,6 +76,8 @@ 'url_params_data_paths' => array( 'Dashboard.uuid' ), + 'postLink' => 1, + 'postLinkConfirm' => __('Are you sure you want to remove this dashboard template?'), 'icon' => 'trash' ) )