Merge pull request #8352 from JakubOnderka/dashboard-layout-remove

chg: [UI] Remove dashboard layout
pull/8341/head
Jakub Onderka 2022-05-07 19:29:21 +02:00 committed by GitHub
commit 5b5f9f42db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 144 deletions

View File

@ -12,7 +12,8 @@ class DashboardsController extends AppController
public function beforeFilter() public function beforeFilter()
{ {
parent::beforeFilter(); parent::beforeFilter();
$this->Security->unlockedActions = array_merge(array('renderWidget', 'getForm'), $this->Security->unlockedActions); $this->Security->unlockedActions[] = 'renderWidget';
$this->Security->unlockedActions[] = 'getForm';
if ($this->request->action === 'renderWidget') { if ($this->request->action === 'renderWidget') {
$this->Security->doNotGenerateToken = true; $this->Security->doNotGenerateToken = true;
} }
@ -25,7 +26,6 @@ class DashboardsController extends AppController
public function index($template_id = false) public function index($template_id = false)
{ {
$this->loadModel('UserSetting');
if (empty($template_id)) { if (empty($template_id)) {
$params = array( $params = array(
'conditions' => array( 'conditions' => array(
@ -33,7 +33,7 @@ class DashboardsController extends AppController
'UserSetting.setting' => 'dashboard' 'UserSetting.setting' => 'dashboard'
) )
); );
$userSettings = $this->UserSetting->find('first', $params); $userSettings = $this->User->UserSetting->find('first', $params);
} else { } else {
$dashboardTemplate = $this->Dashboard->getDashboardTemplate($this->Auth->user(), $template_id); $dashboardTemplate = $this->Dashboard->getDashboardTemplate($this->Auth->user(), $template_id);
if (empty($dashboardTemplate)) { if (empty($dashboardTemplate)) {
@ -83,7 +83,6 @@ class DashboardsController extends AppController
// continue, we just don't load the widget // continue, we just don't load the widget
} }
} }
$this->layout = 'dashboard';
$this->set('widgets', $widgets); $this->set('widgets', $widgets);
} }
@ -115,22 +114,20 @@ class DashboardsController extends AppController
public function updateSettings() public function updateSettings()
{ {
if ($this->request->is('post')) { if ($this->request->is('post')) {
$this->UserSetting = ClassRegistry::init('UserSetting');
if (!isset($this->request->data['Dashboard']['value'])) { if (!isset($this->request->data['Dashboard']['value'])) {
throw new InvalidArgumentException(__('No setting data found.')); throw new InvalidArgumentException(__('No setting data found.'));
} }
$data = array( $data = array(
'UserSetting' => array( 'UserSetting' => array(
'user_id' => $this->Auth->user('id'),
'setting' => 'dashboard', 'setting' => 'dashboard',
'value' => $this->request->data['Dashboard']['value'] 'value' => $this->request->data['Dashboard']['value']
) )
); );
$result = $this->UserSetting->setSetting($this->Auth->user(), $data); $result = $this->User->UserSetting->setSetting($this->Auth->user(), $data);
if ($result) { if ($result) {
return $this->RestResponse->saveSuccessResponse('Dashboard', 'updateSettings', false, false, __('Settings updated.')); return $this->RestResponse->saveSuccessResponse('Dashboard', 'updateSettings', false, false, __('Settings updated.'));
} }
return $this->RestResponse->saveFailResponse('Dashboard', 'updateSettings', false, $this->UserSetting->validationErrors, $this->response->type()); return $this->RestResponse->saveFailResponse('Dashboard', 'updateSettings', false, $this->User->UserSetting->validationErrors, $this->response->type());
} }
} }
@ -240,7 +237,6 @@ class DashboardsController extends AppController
public function saveTemplate($update = false) public function saveTemplate($update = false)
{ {
$this->loadModel('UserSetting');
if (!empty($update)) { if (!empty($update)) {
$conditions = array('Dashboard.id' => $update); $conditions = array('Dashboard.id' => $update);
if (Validation::uuid($update)) { if (Validation::uuid($update)) {
@ -263,7 +259,7 @@ class DashboardsController extends AppController
} }
$data = $this->request->data; $data = $this->request->data;
if (empty($update)) { // save the template stored in user setting and make it persistent if (empty($update)) { // save the template stored in user setting and make it persistent
$data['value'] = $this->UserSetting->getSetting($this->Auth->user('id'), 'dashboard'); $data['value'] = $this->User->UserSetting->getSetting($this->Auth->user('id'), 'dashboard');
} }
$result = $this->Dashboard->saveDashboardTemplate($this->Auth->user(), $data, $update); $result = $this->Dashboard->saveDashboardTemplate($this->Auth->user(), $data, $update);
if ($this->_isRest()) { if ($this->_isRest()) {
@ -282,7 +278,6 @@ class DashboardsController extends AppController
} else { } else {
$this->layout = false; $this->layout = false;
} }
$this->loadModel('User');
$permFlags = array(0 => __('Unrestricted')); $permFlags = array(0 => __('Unrestricted'));
foreach ($this->User->Role->permFlags as $perm_flag => $perm_data) { foreach ($this->User->Role->permFlags as $perm_flag => $perm_data) {
$permFlags[$perm_flag] = $perm_data['text']; $permFlags[$perm_flag] = $perm_data['text'];

View File

@ -1,5 +1,10 @@
<?php
// Include addation CSS and scripts to layout
$this->viewVars["additionalCss"] = ["gridstack.min"];
$this->viewVars["additionalJs"] = ["gridstack.all"];
?>
<div class="index"> <div class="index">
<div class="grid-stack" data-gs-min-row:"10"> <div class="grid-stack">
<?php <?php
foreach ($widgets as $k => $widget) { foreach ($widgets as $k => $widget) {
echo $this->element('/dashboard/widget', array('widget' => $widget, 'k' => $k)); echo $this->element('/dashboard/widget', array('widget' => $widget, 'k' => $k));

View File

@ -1,119 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="<?= Configure::read('Config.language') === 'eng' ? 'en' : Configure::read('Config.language') ?>">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width">
<link rel="shortcut icon" href="<?= $baseurl ?>/img/favicon.png">
<title><?= $title_for_layout, ' - ', h(Configure::read('MISP.title_text') ?: 'MISP') ?></title>
<?php
$css_collection = array(
'bootstrap',
//'bootstrap4',
'bootstrap-datepicker',
'bootstrap-colorpicker',
'font-awesome',
'chosen.min',
'main',
'gridstack.min',
array('print', array('media' => 'print'))
);
if (Configure::read('MISP.custom_css')) {
$css_collection[] = preg_replace('/\.css$/i', '', Configure::read('MISP.custom_css'));
}
$js_collection = array(
'jquery',
'misp-touch',
'chosen.jquery.min',
'gridstack.all'
);
echo $this->element('genericElements/assetLoader', array(
'css' => $css_collection,
'js' => $js_collection,
));
?>
</head>
<body>
<div id="popover_form" class="ajax_popover_form"></div>
<div id="popover_form_large" class="ajax_popover_form ajax_popover_form_large"></div>
<div id="popover_form_x_large" class="ajax_popover_form ajax_popover_form_x_large"></div>
<div id="popover_matrix" class="ajax_popover_form ajax_popover_matrix"></div>
<div id="popover_box" class="popover_box"></div>
<div id="screenshot_box" class="screenshot_box"></div>
<div id="confirmation_box"></div>
<div id="gray_out"></div>
<div id="container">
<?php
echo $this->element('global_menu');
$topPadding = '50';
if (!empty($debugMode) && $debugMode != 'debugOff') {
$topPadding = '0';
}
?>
</div>
<div id="flashContainer" style="padding-top:<?php echo $topPadding; ?>px; !important;">
<div id="main-view-container" class="container-fluid ">
<?php
echo $this->Flash->render();
?>
</div>
</div>
<div>
<?php
echo $this->fetch('content');
?>
</div>
<?php
echo $this->element('genericElements/assetLoader', array(
'js' => array(
'bootstrap',
'bootstrap-timepicker',
'bootstrap-datepicker',
'bootstrap-colorpicker',
'misp',
'keyboard-shortcuts-definition',
'keyboard-shortcuts'
)
));
echo $this->element('footer');
echo $this->element('sql_dump');
?>
<div id = "ajax_success_container" class="ajax_container">
<div id="ajax_success" class="ajax_result ajax_success"></div>
</div>
<div id = "ajax_fail_container" class="ajax_container">
<div id="ajax_fail" class="ajax_result ajax_fail"></div>
</div>
<div class="loading">
<div class="spinner"></div>
<div class="loadingText"><?php echo __('Loading');?></div>
</div>
<script>
<?php
if (!isset($debugMode)):
?>
$(window).scroll(function(e) {
$('.actions').css('left',-$(window).scrollLeft());
});
<?php
endif;
?>
var baseurl = '<?php echo $baseurl; ?>';
var here = '<?php
if (substr($this->params['action'], 0, 6) === 'admin_') {
echo $baseurl . '/admin/' . h($this->params['controller']) . '/' . h(substr($this->params['action'], 6));
} else {
echo $baseurl . '/' . h($this->params['controller']) . '/' . h($this->params['action']);
}
?>';
<?php
if (!Configure::read('MISP.disable_auto_logout') and $me):
?>
//checkIfLoggedIn();
<?php
endif;
?>
</script>
</body>
</html>

View File

@ -7,7 +7,7 @@
<link rel="shortcut icon" href="<?= $baseurl ?>/img/favicon.png"> <link rel="shortcut icon" href="<?= $baseurl ?>/img/favicon.png">
<title><?= $title_for_layout, ' - ', h(Configure::read('MISP.title_text') ?: 'MISP') ?></title> <title><?= $title_for_layout, ' - ', h(Configure::read('MISP.title_text') ?: 'MISP') ?></title>
<?php <?php
$css_collection = array( $css = [
'bootstrap', 'bootstrap',
//'bootstrap4', //'bootstrap4',
'bootstrap-datepicker', 'bootstrap-datepicker',
@ -16,21 +16,27 @@
'chosen.min', 'chosen.min',
'main', 'main',
'jquery-ui', 'jquery-ui',
array('print', array('media' => 'print')) ['print', ['media' => 'print']],
); ];
if (Configure::read('MISP.custom_css')) { if (Configure::read('MISP.custom_css')) {
$css_collection[] = preg_replace('/\.css$/i', '', Configure::read('MISP.custom_css')); $css[] = preg_replace('/\.css$/i', '', Configure::read('MISP.custom_css'));
} }
$js_collection = array( $js = [
'jquery', 'jquery',
'misp-touch', 'misp-touch',
'chosen.jquery.min', 'chosen.jquery.min',
'jquery-ui' 'jquery-ui',
); ];
echo $this->element('genericElements/assetLoader', array( if (!empty($additionalCss)) {
'css' => $css_collection, $css = array_merge($css, $additionalCss);
'js' => $js_collection, }
)); if (!empty($additionalJs)) {
$js = array_merge($js, $additionalJs);
}
echo $this->element('genericElements/assetLoader', [
'css' => $css,
'js' => $js,
]);
?> ?>
</head> </head>
<body data-controller="<?= h($this->params['controller']) ?>" data-action="<?= h($this->params['action']) ?>"> <body data-controller="<?= h($this->params['controller']) ?>" data-action="<?= h($this->params['action']) ?>">