Merge branch 'feature-24647/Konfigurierbare_Dashboards' into feature-25999/C4

This commit is contained in:
cgfhtw
2023-07-19 11:15:40 +02:00
26 changed files with 912 additions and 540 deletions
-1
View File
@@ -59,5 +59,4 @@ class Test extends Auth_Controller
if (!$this->_uid) show_error('User authentification failed');
}
}
+5 -7
View File
@@ -9,7 +9,7 @@ class Api extends Auth_Controller
array(
'index' => 'dashboard/admin:rw',
'getNews' => 'dashboard/benutzer:r',
'getAmpeln' => 'dashboard/benutzer:r',
'getAmpeln' => 'dashboard/benutzer:r',
)
);
@@ -34,9 +34,8 @@ class Api extends Auth_Controller
$result = $this->NewsModel->getAll($limit);
if(hasData($result))
if (hasData($result))
{
$this->outputJson(getData($result), REST_Controller::HTTP_OK);
}
else
@@ -49,21 +48,20 @@ class Api extends Auth_Controller
/**
* Get Ampeln.
*/
public function getAmpeln(){
public function getAmpeln()
{
$this->load->model('content/Ampel_model', 'AmpelModel');
$result = $this->AmpelModel->getByUser($this->_uid);
if(hasData($result))
if (hasData($result))
{
$this->outputJson(getData($result), REST_Controller::HTTP_OK);
}
else
{
$this->terminateWithJsonError('fehler entdeckt');
}
}
/**
+26 -34
View File
@@ -18,9 +18,9 @@ class Config extends Auth_Controller
'removeWidgetFromPreset' => 'dashboard/admin:rw',
'addWidgetsToUserOverride' => 'dashboard/benutzer:rw',
'removeWidgetFromUserOverride' => 'dashboard/benutzer:rw',
'Funktionen' => 'dashboard/admin:r',
'Preset' => 'dashboard/admin:r',
'PresetBatch' => 'dashboard/admin:r'
'funktionen' => 'dashboard/admin:r',
'preset' => 'dashboard/admin:r',
'presetBatch' => 'dashboard/admin:r'
)
);
@@ -29,7 +29,7 @@ class Config extends Auth_Controller
$this->load->model('ressource/Funktion_model', 'FunktionModel');
}
public function index()
public function index()
{
$dashboard_kurzbz = $this->input->get('db');
$uid = $this->AuthLib->getAuthObj()->username;
@@ -46,7 +46,7 @@ class Config extends Auth_Controller
$this->outputJsonSuccess($mergedconfig);
}
public function genWidgetId()
public function genWidgetId()
{
$dashboard_kurzbz = $this->input->get('db');
$widgetid = $this->DashboardLib->generateWidgetId($dashboard_kurzbz);
@@ -55,23 +55,22 @@ class Config extends Auth_Controller
));
}
public function addWidgetsToPreset()
public function addWidgetsToPreset()
{
$input = json_decode($this->input->raw_input_stream);
$dashboard_kurzbz = $input->db;
$funktion_kurzbz = $input->funktion_kurzbz;
$preset = $this->DashboardLib->getPresetOrCreateEmptyPreset($dashboard_kurzbz, $funktion_kurzbz);
$preset = $this->DashboardLib->getPresetOrCreateEmptyPreset($dashboard_kurzbz, $funktion_kurzbz);
$preset_decoded = json_decode($preset->preset, true);
$this->DashboardLib->addWidgetsToWidgets($preset_decoded['widgets'],
$dashboard_kurzbz, $funktion_kurzbz, $input->widgets);
$this->DashboardLib->addWidgetsToWidgets($preset_decoded['widgets'], $dashboard_kurzbz, $funktion_kurzbz, $input->widgets);
$preset->preset = json_encode($preset_decoded);
$result = $this->DashboardLib->insertOrUpdatePreset($preset);
if( isError($result) ) {
if (isError($result)) {
http_response_code(500);
$this->terminateWithJsonError('preset could not be saved');
}
@@ -87,16 +86,13 @@ class Config extends Auth_Controller
$widgetid = $input->widgetid;
$preset = $this->DashboardLib->getPreset($dashboard_kurzbz, $funktion_kurzbz);
if( $preset === null ) {
if ($preset === null) {
http_response_code(404);
$this->terminateWithJsonError('preset for dashboard '
. $dashboard_kurzbz . ' and funktion ' . $funktion_kurzbz
. ' not found.');
$this->terminateWithJsonError('preset for dashboard ' . $dashboard_kurzbz . ' and funktion ' . $funktion_kurzbz . ' not found.');
}
$preset_decoded = json_decode($preset->preset, true);
if (!$this->DashboardLib->removeWidgetFromWidgets($preset_decoded['widgets'],
$funktion_kurzbz, $widgetid))
if (!$this->DashboardLib->removeWidgetFromWidgets($preset_decoded['widgets'], $funktion_kurzbz, $widgetid))
{
http_response_code(404);
$this->terminateWithJsonError('widgetid ' . $widgetid . ' not found');
@@ -104,32 +100,31 @@ class Config extends Auth_Controller
$preset->preset = json_encode($preset_decoded);
$result = $this->DashboardLib->insertOrUpdatePreset($preset);
if( isError($result) )
if (isError($result))
{
http_response_code(500);
$this->terminateWithJsonError('failed to remove widget');
$this->terminateWithJsonError('failed to remove widget');
}
$this->outputJsonSuccess(array('msg' => 'preset successfully updated.'));
}
public function addWidgetsToUserOverride()
public function addWidgetsToUserOverride()
{
$input = json_decode($this->input->raw_input_stream);
$dashboard_kurzbz = $input->db;
$funktion_kurzbz = $input->funktion_kurzbz;
$uid = $this->AuthLib->getAuthObj()->username;
$override = $this->DashboardLib->getOverrideOrCreateEmptyOverride($dashboard_kurzbz, $uid);
$override = $this->DashboardLib->getOverrideOrCreateEmptyOverride($dashboard_kurzbz, $uid);
$override_decoded = json_decode($override->override, true);
$this->DashboardLib->addWidgetsToWidgets($override_decoded['widgets'],
$dashboard_kurzbz, $funktion_kurzbz, $input->widgets);
$this->DashboardLib->addWidgetsToWidgets($override_decoded['widgets'], $dashboard_kurzbz, $funktion_kurzbz, $input->widgets);
$override->override = json_encode($override_decoded);
$result = $this->DashboardLib->insertOrUpdateOverride($override);
if( isError($result) ) {
if (isError($result)) {
http_response_code(500);
$this->terminateWithJsonError('override could not be saved');
}
@@ -146,16 +141,14 @@ class Config extends Auth_Controller
$widgetid = $input->widgetid;
$override = $this->DashboardLib->getOverride($dashboard_kurzbz, $uid);
if( empty($override) ) {
if (empty($override)) {
http_response_code(404);
$this->terminateWithJsonError('userconfig for dashboard '
. $dashboard_kurzbz . ' not found.');
$this->terminateWithJsonError('userconfig for dashboard ' . $dashboard_kurzbz . ' not found.');
}
$override_decoded = json_decode($override->override, true);
if( !$this->DashboardLib->removeWidgetFromWidgets($override_decoded['widgets'],
$funktion_kurzbz, $widgetid) )
if (!$this->DashboardLib->removeWidgetFromWidgets($override_decoded['widgets'], $funktion_kurzbz, $widgetid))
{
http_response_code(404);
$this->terminateWithJsonError('widgetid ' . $widgetid . ' not found');
@@ -163,15 +156,15 @@ class Config extends Auth_Controller
$override->override = json_encode($override_decoded);
$result = $this->DashboardLib->insertOrUpdateOverride($override, $uid);
if( isError($result) )
if (isError($result))
{
http_response_code(500);
$this->terminateWithJsonError('failed to remove widget');
$this->terminateWithJsonError('failed to remove widget');
}
$this->outputJsonSuccess(array('msg' => 'override successfully updated.'));
}
public function Funktionen()
public function funktionen()
{
$funktionen = $this->FunktionModel->load();
@@ -185,7 +178,7 @@ class Config extends Auth_Controller
return $this->outputJsonSuccess(getData($funktionen) ?: []);
}
public function Preset()
public function preset()
{
$db = $this->input->get('db');
$funktion = $this->input->get('funktion');
@@ -198,7 +191,7 @@ class Config extends Auth_Controller
return $this->outputJsonSuccess(json_decode($conf->preset, true));
}
public function PresetBatch()
public function presetBatch()
{
$db = $this->input->get('db');
$funktionen = $this->input->get('funktionen');
@@ -220,5 +213,4 @@ class Config extends Auth_Controller
return $this->outputJsonSuccess($result);
}
}
@@ -12,9 +12,9 @@ class Dashboard extends Auth_Controller
parent::__construct(
array(
'index' => 'dashboard/admin:r',
'Create' => 'dashboard/admin:rw',
'Update' => 'dashboard/admin:rw',
'Delete' => 'dashboard/admin:rw'
'create' => 'dashboard/admin:rw',
'update' => 'dashboard/admin:rw',
'delete' => 'dashboard/admin:rw'
)
);
@@ -22,7 +22,7 @@ class Dashboard extends Auth_Controller
$this->load->model('dashboard/Dashboard_model', 'DashboardModel');
}
public function index()
public function index()
{
$result = $this->DashboardModel->load();
@@ -36,7 +36,7 @@ class Dashboard extends Auth_Controller
return $this->outputJsonSuccess(getData($result) ?: []);
}
public function Create()
public function create()
{
$input = $this->getPostJSON();
@@ -52,7 +52,7 @@ class Dashboard extends Auth_Controller
return $this->outputJsonSuccess(getData($result) ?: []);
}
public function Update()
public function update()
{
$input = $this->getPostJSON();
@@ -68,7 +68,7 @@ class Dashboard extends Auth_Controller
return $this->outputJsonSuccess(getData($result) ?: []);
}
public function Delete()
public function delete()
{
$input = $this->getPostJSON();
@@ -83,5 +83,4 @@ class Dashboard extends Auth_Controller
return $this->outputJsonSuccess(getData($result) ?: []);
}
}
@@ -17,6 +17,7 @@ class DashboardDemo extends Auth_Controller
parent::__construct(
array(
'index' => 'user:r',
'admin' => 'dashboard/admin:rw'
)
);
@@ -35,6 +36,13 @@ class DashboardDemo extends Auth_Controller
$this->load->view('dashboard/dashboard_demo.php', []);
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
public function admin()
{
$this->load->view('dashboard/dashboard_demo_admin.php', []);
}
// -----------------------------------------------------------------------------------------------------------------
// Private methods
@@ -47,5 +55,4 @@ class DashboardDemo extends Auth_Controller
if (!$this->_uid) show_error('User authentification failed');
}
}
+7 -6
View File
@@ -23,7 +23,7 @@ class Widget extends Auth_Controller
$this->load->model('dashboard/Dashboard_Widget_model', 'DashboardWidgetModel');
}
public function index()
public function index()
{
$widget_id = $this->input->get('id');
@@ -48,7 +48,7 @@ class Widget extends Auth_Controller
return $this->outputJsonSuccess(current(getData($widget)));
}
public function getAll()
public function getAll()
{
$dashboard_id = $this->input->get('dashboard_id');
$result = $this->WidgetModel->getWithAllowedForDashboard($dashboard_id);
@@ -59,7 +59,7 @@ class Widget extends Auth_Controller
$this->outputJsonSuccess(getData($result) ?: []);
}
public function getWidgetsForDashboard()
public function getWidgetsForDashboard()
{
$db = $this->input->get('db');
$result = $this->WidgetModel->getForDashboard($db);
@@ -74,7 +74,8 @@ class Widget extends Auth_Controller
$this->outputJsonSuccess(getData($result) ?: []);
}
public function setAllowed() {
public function setAllowed()
{
$input = $this->getPostJSON();
$dashboard_id = $input->dashboard_id;
@@ -83,12 +84,12 @@ class Widget extends Auth_Controller
if ($action == 'add') {
$result = $this->DashboardWidgetModel->insert([
'dashboard_id' => $dashboard_id,
'dashboard_id' => $dashboard_id,
'widget_id' => $widget_id
]);
} elseif ($action == 'delete') {
$result = $this->DashboardWidgetModel->delete([
'dashboard_id' => $dashboard_id,
'dashboard_id' => $dashboard_id,
'widget_id' => $widget_id
]);
} else {