Merge branch 'feature/76688-general-tabulator-issues_77080-persistence' into studvw_lvvw_2026_08_rc_77973

This commit is contained in:
Harald Bamberger
2026-08-03 16:06:34 +02:00
12 changed files with 1739 additions and 203 deletions
+2
View File
@@ -99,6 +99,7 @@ require_once('dbupdate_3.4/68957_dashboard_bookmark_neue_Spalte_sort.php');
require_once('dbupdate_3.4/68530_Dashboard_Cleanup.php');
require_once('dbupdate_3.4/75959_StudVw_Automatische_Tags.php');
require_once('dbupdate_3.4/76160_lvv_favorites.php');
require_once('dbupdate_3.4/77080_tabulator_presets_table.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -396,6 +397,7 @@ $tabellen=array(
"public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung","bezeichnung_mehrsprachig"),
"public.tbl_studienjahr" => array("studienjahr_kurzbz","bezeichnung"),
"public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"),
"public.tbl_tabulator_presets" => array("preset_id", "benutzer_uid", "table_name", "preset_json"),
"public.tbl_tag" => array("tag"),
"public.tbl_variable" => array("name","uid","wert"),
"public.tbl_variablenname" => array("name","defaultwert"),
@@ -0,0 +1,55 @@
<?php
if (!defined('DB_NAME'))
exit('No direct script access allowed');
if (!$result = @$db->db_query("SELECT 1 FROM public.tbl_tabulator_presets LIMIT 1")) {
$qry = "CREATE TABLE public.tbl_tabulator_presets (
preset_id int NOT NULL,
benutzer_uid varchar(33) NOT NULL,
table_name varchar(255) NOT NULL,
preset_name varchar(255) NOT NULL,
preset_json varchar(10000) NOT NULL,
CONSTRAINT tbl_tabulator_presets_preset_id_pk PRIMARY KEY(preset_id),
CONSTRAINT tbl_tabulator_presets_benutzer_uid_fk FOREIGN KEY (benutzer_uid) REFERENCES public.tbl_benutzer(uid)
);";
if (!$db->db_query($qry))
echo '<strong>public.tbl_tabulator_presets: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>public.tbl_tabulator_presets: table created';
$db->db_query('CREATE SEQUENCE IF NOT EXISTS public.seq_tbl_tabulator_presets_preset_id
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;');
$db->db_query("ALTER TABLE public.tbl_tabulator_presets ALTER COLUMN preset_id SET DEFAULT nextval('public.seq_tbl_tabulator_presets_preset_id');");
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.tbl_tabulator_presets TO web;';
if (!$db->db_query($qry))
echo '<strong>public.tbl_tabulator_presets: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>Granted privileges to <strong>web</strong> on public.tbl_tabulator_presets';
$qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE public.tbl_tabulator_presets TO vilesci;';
if (!$db->db_query($qry))
echo '<strong>public.tbl_tabulator_presets: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>Granted privileges to <strong>vilesci</strong> on public.tbl_tabulator_presets';
$qry = 'GRANT USAGE ON public.seq_tbl_tabulator_presets_preset_id TO web;';
if (!$db->db_query($qry))
echo '<strong>public.tbl_tabulator_presets: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>Granted privileges to <strong>web</strong> on public.tbl_tabulator_presets';
$qry = 'GRANT USAGE ON public.seq_tbl_tabulator_presets_preset_id TO vilesci;';
if (!$db->db_query($qry))
echo '<strong>public.tbl_tabulator_presets: ' . $db->db_last_error() . '</strong><br>';
else
echo '<br>Granted privileges to <strong>vilesci</strong> on public.tbl_tabulator_presets';
}
+362
View File
@@ -61721,6 +61721,368 @@ I have been informed that I am under no obligation to consent to the transmissio
)
),
//End Finetuning StudVW
// tabulator presets section phrases START
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'displayed_columns',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Angezeigte Spalten',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Displayed columns',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'in_order',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'in Reihenfolge',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'in order',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'column_header_filters',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Spalten Header Filter',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Column header filters',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'asc',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'aufsteigend',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ascending',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'desc',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'absteigend',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'descending',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'sort',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Sortierung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Sort',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_deletion_confirmation',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Sind Sie sicher, dass Sie die Voreinstellung (((presetName))) löschen möchten?',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Are you sure you want to delete preset (((presetName)))?',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'table_presets',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Tabelle Voreinstellungen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Table presets',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'save_current_config',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Aktuelle Einstellung speichern',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Save current configuration',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_name',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Voreinstellung Name',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Preset name',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'max_presets_count_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Maximale Anzahl an Voreinstellungen erreicht!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Maximum number of presets reached!',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_name_duplicate_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Doppelte Voreinstellunge Namen sind nicht zulässig!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Preset name duplicate not allowed!',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_not_found_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Voreinstellung nicht gefunden!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Preset not found!',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_not_own_update_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Sie dürfen diese Voreinstellung nicht ändern!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'You are not allowed to update this preset!',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_not_own_delete_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Sie dürfen diese Voreinstellung nicht löschen!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'You are not allowed to delete this preset!',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_creation_generic_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bei der Erstellung der Voreinstellung ist ein Fehler aufgetreten!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Something went wrong during preset creation!',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_update_generic_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bei der Voreinstellungsänderung ist ein Fehler aufgetreten!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Something went wrong during preset update!',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'tabulator_presets',
'phrase' => 'preset_deletion_generic_err_msg',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Beim Löschen der Voreinstellung ist ein Fehler aufgetreten!',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Something went wrong during preset deletion!',
'description' => '',
'insertvon' => 'system'
)
)
),
// tabulator presets section phrases END
);