diff --git a/system/checksystem.php b/system/checksystem.php index 5e4daa1d4..9f631b434 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -73,6 +73,16 @@ echo '
'; require_once('phrasesupdate.php'); echo '
'; +// ******** filtersupdate ************/ +echo '

Filters time!

'; + +echo '
'; + echo 'filtersupdate.php wird aufgerufen...'; +echo '
'; +echo '
'; + require_once('filtersupdate.php'); +echo '
'; + // ******** Berechtigungen Prüfen ************/ echo '

Berechtigungen pruefen

'; diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index d3cf9eb7c..73c2ea755 100755 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -1878,89 +1878,6 @@ if($result = $db->db_query("SELECT obj_description('public.ci_apikey'::regclass) } } -if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplicationAll' AND app='infocenter'")) -{ - if($db->db_num_rows($result)==0) - { - $qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort, - default_filter, filter, oe_kurzbz) - VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplicationAll', NULL, '{Alle}', 1, false, - '{\"name\": \"Abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"}, - {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"}, - {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}], - \"filters\": [{\"name\": \"AnzahlAbgeschickt\", \"option\": \"\", - \"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);"; - if(!$db->db_query($qry)) - echo 'Filter: '.$db->db_last_error().'
'; - else - echo '
Filter InfoCenterSentApplicationAll hinzugefuegt'; - } -} - -if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplication3days' AND app='infocenter'")) -{ - if($db->db_num_rows($result)==0) - { - $qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort, - default_filter, filter, oe_kurzbz) - VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplication3days', NULL, - '{\"3 Tage keine Aktion\"}', 2, false, '{\"name\": \"Abgeschickt - 3 Tage keine Aktion\", - \"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, - {\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, - {\"name\": \"StgAbgeschickt\"}], - \"filters\": [{\"name\": \"LastAction\", \"option\": \"days\", \"condition\": \"3\", - \"operation\": \"gt\"}, {\"name\": \"AnzahlAbgeschickt\", \"option\": \"\", - \"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);"; - - if(!$db->db_query($qry)) - echo 'Filter: '.$db->db_last_error().'
'; - else - echo '
Filter InfoCenterSentApplication3days hinzugefuegt'; - } -} - -if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplicationAll' AND app='infocenter'")) -{ - if($db->db_num_rows($result)==0) - { - $qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort, - default_filter, filter, oe_kurzbz) - VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplicationAll', NULL, '{Alle}', 1, false, - '{\"name\": \"Nicht abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"}, - {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"}, - {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}], - \"filters\": [{\"name\": \"SendDate\", \"option\": \"\", - \"condition\": \"\", \"operation\": \"nset\"}]}', NULL);"; - - if(!$db->db_query($qry)) - echo 'Filter: '.$db->db_last_error().'
'; - else - echo '
Filter InfoCenterNotSentApplicationAll hinzugefuegt'; - } -} - -if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplication14Days' AND app='infocenter'")) -{ - if($db->db_num_rows($result)==0) - { - $qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort, - default_filter, filter, oe_kurzbz) - VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplication14Days', NULL, - '{\"14 Tage keine Aktion\"}', 2, false, '{\"name\": \"Nicht abgeschickt - 14 Tage keine Aktion\", - \"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, - {\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, - {\"name\": \"StgAbgeschickt\"}], \"filters\": [{\"name\": \"LastAction\", \"option\": \"days\", - \"condition\": \"14\", \"operation\": \"gt\"}, {\"name\": \"SendDate\", \"option\": \"\", - \"condition\": \"\", \"operation\": \"nset\"}]}', NULL); - "; - - if(!$db->db_query($qry)) - echo 'Filter: '.$db->db_last_error().'
'; - else - echo '
Filter InfoCenterNotSentApplication14Days hinzugefuegt'; - } -} - if (!$result = @$db->db_query("SELECT projekt_id FROM fue.tbl_projekt LIMIT 1")) { $qry = "CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq @@ -2267,7 +2184,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants if($db->db_num_rows($result)==0) { $qry = "GRANT DELETE ON system.tbl_log TO web;"; - + if(!$db->db_query($qry)) echo 'Permission Log: '.$db->db_last_error().'
'; else diff --git a/system/filtersupdate.php b/system/filtersupdate.php new file mode 100644 index 000000000..7134b16bf --- /dev/null +++ b/system/filtersupdate.php @@ -0,0 +1,390 @@ + 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterSentApplicationAll', + 'description' => '{Alle}', + 'sort' => 1, + 'default_filter' => false, + 'filter' => ' + { + "name": "Abgeschickt - Alle", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "Nation"}, + {"name": "StgAbgeschickt"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser"} + ], + "filters": [ + { + "name": "AnzahlAbgeschickt", + "option": "", + "condition": "0", + "operation": "gt" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterSentApplication3days', + 'description' => '{"3 Tage keine Aktion"}', + 'sort' => 2, + 'default_filter' => false, + 'filter' => ' + { + "name": "Abgeschickt - 3 Tage keine Aktion", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "Nation"}, + {"name": "StgAbgeschickt"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser"} + ], + "filters": [ + { + "name": "LastAction", + "option": "days", + "condition": "3", + "operation": "gt" + }, + { + "name": "AnzahlAbgeschickt", + "option": "", + "condition": "0", + "operation": "gt" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterNotSentApplicationAll', + 'description' => '{Alle}', + 'sort' => 1, + 'default_filter' => false, + 'filter' => ' + { + "name": "Nicht abgeschickt - Alle", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "Nation"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser" + }, + {"name": "StgNichtAbgeschickt"}, + {"name": "StgAbgeschickt"}, + {"name": "StgAktiv"}, + {"name": "Studiensemester"} + ], + "filters": [ + { + "name": "SendDate", + "option": "", + "condition": "", + "operation": "nset" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterNotSentApplication14Days', + 'description' => '{"14 Tage keine Aktion"}', + 'sort' => 3, + 'default_filter' => false, + 'filter' => ' + { + "name": "Nicht abgeschickt - 14 Tage keine Aktion", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "Nation"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser"}, + {"name": "StgNichtAbgeschickt"}, + {"name": "StgAbgeschickt"}, + {"name": "StgAktiv"}, + {"name": "Studiensemester"} + ], + "filters": [ + { + "name": "LastAction", + "option": "days", + "condition": "14", + "operation": "gt" + }, + { + "name": "SendDate", + "option": "", + "condition": "", + "operation": "nset" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterSentApplicationLt3days', + 'description' => '{"< 3 Tage"}', + 'sort' => 3, + 'default_filter' => false, + 'filter' => ' + { + "name": "Abgeschickt - Aktion innert der letzten 3 Tage", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "Nation"}, + {"name": "StgAbgeschickt"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser"} + ], + "filters": [ + { + "name": "LastAction", + "option": "days", + "condition": "3", + "operation": "lt" + }, + { + "name": "AnzahlAbgeschickt", + "option": "", + "condition": "0", + "operation": "gt" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterNotSentApplication5DaysOnline', + 'description' => '{"5 Tage keine BewAktion"}', + 'sort' => 2, + 'default_filter' => false, + 'filter' => ' + { + "name": "Nicht abgeschickt - 5 Tage keine Aktion durch BewerberIn", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "Nation"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser"}, + {"name": "StgNichtAbgeschickt"}, + {"name": "StgAbgeschickt"}, + {"name": "StgAktiv"}, + {"name": "Studiensemester"} + ], + "filters": [ + { + "name": "SendDate", + "option": "", + "condition": "", + "operation": "nset" + }, + { + "name": "LastAction", + "option": "days", + "condition": "5", + "operation": "gt" + }, + { + "name": "User/Operator", + "option": "", + "condition": "online", + "operation": "contains" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterFreigegeben5days', + 'description' => '{"5 Tage Letzte Aktion"}', + 'sort' => 1, + 'default_filter' => true, + 'filter' => ' + { + "name": "Freigegeben - 5 Tage Letzte Aktion", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "StgAbgeschickt"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser"} + ], + "filters": [ + { + "name": "LastAction", + "option": "days", + "condition": "5", + "operation": "lt" + } + ] + } + ', + 'oe_kurzbz' => null, + ), + array( + 'app' => 'infocenter', + 'dataset_name' => 'PersonActions', + 'filter_kurzbz' => 'InfoCenterFreigegebenAlle', + 'description' => '{Alle}', + 'sort' => 2, + 'default_filter' => false, + 'filter' => ' + { + "name": "Freigegeben - Alle", + "columns": [ + {"name": "Vorname"}, + {"name": "Nachname"}, + {"name": "StgAbgeschickt"}, + {"name": "LastAction"}, + {"name": "User/Operator"}, + {"name": "LockUser"} + ], + "filters": [] + } + ', + 'oe_kurzbz' => null, + ) +); + +// Loop through the filters array +for ($filtersCounter = 0; $filtersCounter < count($filters); $filtersCounter++) +{ + $filter = $filters[$filtersCounter]; // single filter definition + + // If it's an array and contains the required number of elements + // and contains the required fields + if (is_array($filter) && count($filter) == 8 + && isset($filter['app']) && isset($filter['dataset_name']) + && isset($filter['filter_kurzbz']) && isset($filter['description']) + && isset($filter['filter'])) + { + $selectFilterQuery = 'SELECT filter_id + FROM system.tbl_filters + WHERE app = '.$db->db_add_param($filter['app']). + ' AND dataset_name = '.$db->db_add_param($filter['dataset_name']). + ' AND filter_kurzbz = '.$db->db_add_param($filter['filter_kurzbz']); + + // If no error occurred while loading a filter from the DB + if ($dbFilterDefinition = @$db->db_query($selectFilterQuery)) + { + // If NO filters were loaded: insert + if ($db->db_num_rows($dbFilterDefinition) == 0) + { + $insertFilterQuery = 'INSERT INTO system.tbl_filters ( + app, + dataset_name, + filter_kurzbz, + person_id, + description, + sort, + default_filter, + filter, + oe_kurzbz + ) VALUES ( + '.$db->db_add_param($filter['app']).', + '.$db->db_add_param($filter['dataset_name']).', + '.$db->db_add_param($filter['filter_kurzbz']).', + null, + '.$db->db_add_param($filter['description']).', + '.$db->db_add_param($filter['sort']).', + '.$db->db_add_param($filter['default_filter']).', + '.$db->db_add_param($filter['filter']).', + '.$db->db_add_param($filter['oe_kurzbz']).' + )'; + + if (!@$db->db_query($insertFilterQuery)) // checks query execution + { + echo 'An error occurred while inserting filters: '.$db->db_last_error().'
'; + } + else + { + echo 'Filter added: '.$filter['app'].' - '.$filter['dataset_name'].' - '.$filter['filter_kurzbz'].'
'; + } + } + else // otherwise if the filter is already present in the DB: update + { + if ($filterDb = $db->db_fetch_object($dbFilterDefinition)) + { + $updateFilterQuery = 'UPDATE system.tbl_filters SET + app = '.$db->db_add_param($filter['app']).', + dataset_name = '.$db->db_add_param($filter['dataset_name']).', + filter_kurzbz = '.$db->db_add_param($filter['filter_kurzbz']).', + person_id = null, + description = '.$db->db_add_param($filter['description']).', + sort = '.$db->db_add_param($filter['sort']).', + default_filter = '.$db->db_add_param($filter['default_filter']).', + filter = '.$db->db_add_param($filter['filter']).', + oe_kurzbz = '.$db->db_add_param($filter['oe_kurzbz']).' + WHERE filter_id = '.$db->db_add_param($filterDb->filter_id); + + if (!@$db->db_query($updateFilterQuery)) // checks query execution + { + echo 'An error occurred while inserting filters: '.$db->db_last_error().'
'; + } + else + { + echo 'Filter updated: '.$filter['app'].' - '.$filter['dataset_name'].' - '.$filter['filter_kurzbz'].'
'; + } + } + } + } + else // otherwise if errors occurred + { + echo 'An error occurred while inserting filters: '.$db->db_last_error().'
'; + } + } +}