use PvAutocomplete instead Chips, start FilterTags

This commit is contained in:
ma0068
2025-11-05 11:09:16 +01:00
parent 707d00b280
commit df63b8c1b7
6 changed files with 336 additions and 74 deletions
+55 -10
View File
@@ -11,16 +11,18 @@ class Config extends Auth_Controller
{
parent::__construct(
array(
'index' => 'dashboard/benutzer:r',
'dummy' => 'dashboard/benutzer:r',
'genWidgetId' => 'dashboard/benutzer:rw',
'addWidgetsToPreset' => 'dashboard/admin:rw',
'removeWidgetFromPreset' => 'dashboard/admin:rw',
'addWidgetsToUserOverride' => 'dashboard/benutzer:rw',
'removeWidgetFromUserOverride' => 'dashboard/benutzer:rw',
'funktionen' => 'dashboard/admin:r',
'preset' => 'dashboard/admin:r',
'presetBatch' => 'dashboard/admin:r'
'index' => 'dashboard/benutzer:r',
'dummy' => 'dashboard/benutzer:r',
'genWidgetId' => 'dashboard/benutzer:rw',
'addWidgetsToPreset' => 'dashboard/admin:rw',
'removeWidgetFromPreset' => 'dashboard/admin:rw',
'addWidgetsToUserOverride' => 'dashboard/benutzer:rw',
'removeWidgetFromUserOverride' => 'dashboard/benutzer:rw',
'funktionen' => 'dashboard/admin:r',
'preset' => 'dashboard/admin:r',
'presetBatch' => 'dashboard/admin:r',
'insertAndUpdateTagsForBookmarksUser' => 'dashboard/benutzer:rw',
'getTagFilter' => 'dashboard/benutzer:rw',
)
);
@@ -213,4 +215,47 @@ class Config extends Auth_Controller
return $this->outputJsonSuccess($result);
}
//TODO(Manu) move to Bookmark controller
public function insertAndUpdateTagsForBookmarksUser()
{
$widgetId = $this->input->get('widget_id');
$funktion_kurzbz = $this->input->get('funktion_kurzbz');
$uid = $this->AuthLib->getAuthObj()->username;
$tags = $this->input->get('tags');
$this->load->model('dashboard/Dashboard_Override_model', 'Dashboard_OverrideModel');
$result = $this->Dashboard_OverrideModel->addTagFilter($widgetId, $uid, $funktion_kurzbz, $tags);
$this->outputJsonSuccess($result ?: []);
}
//TODO(Manu) move to Bookmark controller
public function getTagFilter()
{
$widgetId = $this->input->get('widget_id');
$funktion_kurzbz = $this->input->get('funktion_kurzbz');
$uid = $this->AuthLib->getAuthObj()->username;
//$dashboard_kurzbz = 1;
$this->load->model('dashboard/Dashboard_Override_model', 'Dashboard_OverrideModel');
/* $override = $this->DashboardLib->getOverride($dashboard_kurzbz, $uid);
if (empty($override)) {
http_response_code(404);
$this->terminateWithJsonError('userconfig for dashboard ' . $dashboard_kurzbz . ' not found.');
}
$override_decoded = json_decode($override->override, true);
return $this->outputJsonSuccess($override_decoded ?: []);*/
$result = $this->Dashboard_OverrideModel->getTagFilter($widgetId, $uid, $funktion_kurzbz);
$this->outputJsonSuccess($result ?: []);
}
}
@@ -23,4 +23,58 @@ class Dashboard_Override_model extends DB_Model
{
return $this->loadWhere(array('dashboard_id' => $dashboard_id, 'uid'=> $uid));
}
/**
* Get Overrides of given uid and funktion_kurzbz and widget_id
* @param integer dashboard_id
* @param string $uid
* @return array
*/
//TODO(MANU) move to bookmark model
public function getTagFilter($widgetId, $uid, $funktion_kurzbz)
{
// $qry = "SELECT override -> ? -> 'widgets' -> ? -> 'tags' AS tags FROM dashboard.tbl_dashboard_benutzer_override WHERE uid = ?";
// $qry = " SELECT override -> '" . $funktion_kurzbz . "'-> 'widgets'-> '" . $widgetId . "'-> 'tags' AS tags FROM dashboard.tbl_dashboard_benutzer_override WHERE uid = '" . $uid . "';";
//unter config
$qry = " SELECT override -> '" . $funktion_kurzbz . "'-> 'widgets'-> '" . $widgetId . "'-> 'config' -> 'tags' AS tags FROM dashboard.tbl_dashboard_benutzer_override WHERE uid = '" . $uid . "';";
/* $qry = <<<SQL
SELECT
override -> ?
-> 'widgets'
-> ?
-> 'tags' AS tags
FROM dashboard.tbl_dashboard_benutzer_override
WHERE uid = ?
SQL;*/
//return $qry;
return $this->execQuery($qry);
// return $this->execQuery($qry, array($funktion_kurzbz, $widgetId, $uid));
}
//TODO(MANU) move to bookmark model
public function addTagFilter($widgetId, $uid, $funktion_kurzbz, $tags)
{
if (is_array($tags)) {
$tags = json_encode($tags); // convert PHP array to JSON string
}
$params = [$funktion_kurzbz, $widgetId, $tags, $uid];
$qry = "
UPDATE dashboard.tbl_dashboard_benutzer_override
SET override = jsonb_set(
COALESCE(override, '{}'::jsonb),
format('{%s,widgets,%s,config,tags}',? , ?)::text[],
?::jsonb,
true
)
WHERE uid = ?
";
// return $qry;
return $this->execQuery($qry, $params);
}
}