From c7c89138339a20e0e25066c3eac7fddd61adb35e Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 11 Oct 2022 14:18:39 +0200 Subject: [PATCH 01/16] =?UTF-8?q?Adapted=20Dashboard=20DB=20Update:=20Bere?= =?UTF-8?q?chtigungen=20erg=C3=A4nzt=20/=20Typspezifikation=20entfernt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit . Berechtigungen ergänzt: - dashboard/benutzer - dashboard/admin . Typspezifikation entfernt in Create Sequence - war nicht mit PHPSQL 9.6.2 kompatibel. --- system/dashboard/dbupdate_dashboard.php | 41 ++++++++++++++++++++++--- system/dbupdate_3.3.php | 7 ++++- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/system/dashboard/dbupdate_dashboard.php b/system/dashboard/dbupdate_dashboard.php index 3e73de3b9..a8ef842e1 100644 --- a/system/dashboard/dbupdate_dashboard.php +++ b/system/dashboard/dbupdate_dashboard.php @@ -72,7 +72,6 @@ ALTER TABLE dashboard.tbl_dashboard_benutzer_override OWNER TO fhcomplete; -- CREATE SEQUENCE dashboard.tbl_dashboard_benutzer_override_override_id_seq - AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -94,7 +93,6 @@ ALTER SEQUENCE dashboard.tbl_dashboard_benutzer_override_override_id_seq OWNED B -- CREATE SEQUENCE dashboard.tbl_dashboard_dashboard_id_seq - AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -130,7 +128,6 @@ ALTER TABLE dashboard.tbl_dashboard_preset OWNER TO fhcomplete; -- CREATE SEQUENCE dashboard.tbl_dashboard_preset_preset_id_seq - AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -177,7 +174,6 @@ ALTER TABLE dashboard.tbl_widget OWNER TO fhcomplete; -- CREATE SEQUENCE dashboard.tbl_widget_widget_id_seq - AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -427,3 +423,40 @@ EODASHBOARDSQL; } } } + +// Add permission: dashboard/admin +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'dashboard/admin';")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('dashboard/admin', 'Adminberechtigung');"; + + if(!$db->db_query($qry)) + { + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + } + else + { + echo 'system.tbl_berechtigung: Added permission for dashboard/admin
'; + } + } +} + +// Add permission: dashboard/benutzer +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'dashboard/benutzer';")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('dashboard/benutzer', 'Benutzerberechtigung');"; + + if(!$db->db_query($qry)) + { + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + } + else + { + echo 'system.tbl_berechtigung: Added permission for dashboard/benutzer
'; + } + } +} + diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index fc5e95b35..190b06a4e 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -6521,7 +6521,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants } } -// add Dashboard Schema and Tables +// add Dashboard Schema, Tables and Permissions include __DIR__ . '/dashboard/dbupdate_dashboard.php'; // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen @@ -6618,6 +6618,11 @@ $tabellen=array( "campus.tbl_zeitsperretyp" => array("zeitsperretyp_kurzbz","beschreibung","farbe"), "campus.tbl_zeitwunsch" => array("stunde","mitarbeiter_uid","tag","gewicht","updateamum","updatevon","insertamum","insertvon", "zeitwunsch_id", "zeitwunsch_gueltigkeit_id"), "campus.tbl_zeitwunsch_gueltigkeit" => array("zeitwunsch_gueltigkeit_id","mitarbeiter_uid","von","bis","insertamum","insertvon", "updateamum","updatevon"), + "dashboard.tbl_dashboard" => array("dashboard_id", "dashboard_kurzbz", "beschreibung"), + "dashboard.tbl_dashboard_benutzer_override" => array("override_id", "dashboard_id", "uid", "override"), + "dashboard.tbl_dashboard_preset" => array("preset_id", "dashboard_id", "funktion_kurzbz", "preset"), + "dashboard.tbl_dashboard_widget" => array("dashboard_id", "widget_id"), + "dashboard.tbl_widget" => array("widget_id", "widget_kurzbz", "beschreibung"), "fue.tbl_aktivitaet" => array("aktivitaet_kurzbz","beschreibung","sort"), "fue.tbl_aufwandstyp" => array("aufwandstyp_kurzbz","bezeichnung"), "fue.tbl_projekt" => array("projekt_kurzbz","nummer","titel","beschreibung","beginn","ende","oe_kurzbz","budget","farbe","aufwandstyp_kurzbz","ressource_id","anzahl_ma","aufwand_pt","projekt_id","projekttyp_kurzbz","zeitaufzeichnung"), From ecbc6d8e3dda0c1ebfafd2948cb8440847e492bc Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 17 Oct 2022 13:37:08 +0200 Subject: [PATCH 02/16] Added Dashboard Controller & View --- .../controllers/dashboard/Dashboard.php | 55 +++++++++++++++++++ application/views/dashboard/dashboard.php | 31 +++++++++++ public/js/apps/Dashboard.js | 16 ++++++ 3 files changed, 102 insertions(+) create mode 100644 application/controllers/dashboard/Dashboard.php create mode 100644 application/views/dashboard/dashboard.php create mode 100644 public/js/apps/Dashboard.js diff --git a/application/controllers/dashboard/Dashboard.php b/application/controllers/dashboard/Dashboard.php new file mode 100644 index 000000000..2769bb8e5 --- /dev/null +++ b/application/controllers/dashboard/Dashboard.php @@ -0,0 +1,55 @@ + 'user:r', + ) + ); + + $this->load->library('AuthLib'); + $this->load->library('WidgetLib'); + + $this->_setAuthUID(); // sets property uid + + $this->setControllerId(); // sets the controller id + } + + // ----------------------------------------------------------------------------------------------------------------- + // Public methods + public function index() + { + $this->load->view('dashboard/dashboard.php', []); + } + // TODO löschen + public function test(){ + echo "
"; print_r('in Dashboard Test function'); echo "
"; + } + + // ----------------------------------------------------------------------------------------------------------------- + // Private methods + + /** + * Retrieve the UID of the logged user and checks if it is valid + */ + private function _setAuthUID() + { + $this->_uid = getAuthUID(); + + if (!$this->_uid) show_error('User authentification failed'); + } + +} diff --git a/application/views/dashboard/dashboard.php b/application/views/dashboard/dashboard.php new file mode 100644 index 000000000..3518d769a --- /dev/null +++ b/application/views/dashboard/dashboard.php @@ -0,0 +1,31 @@ +load->view('templates/FHC-Header', + array( + 'title' => 'FH-Complete', + 'bootstrap5' => true, + 'fontawesome6' => true, + 'axios027' => true, + 'restclient' => true, + 'vue3' => true, + 'customJSModules' => ['public/js/apps/Dashboard.js'], + 'customCSSs' => [ + 'public/css/components/dashboard.css' + ], + 'navigationcomponent' => true + ) +); +?> + +
+ + + +
+
+

Dashboard

+
+ +
+
+ +load->view('templates/FHC-Footer'); ?> diff --git a/public/js/apps/Dashboard.js b/public/js/apps/Dashboard.js new file mode 100644 index 000000000..54a73441c --- /dev/null +++ b/public/js/apps/Dashboard.js @@ -0,0 +1,16 @@ +import {CoreNavigationCmpt} from '../components/navigation/Navigation.js'; +import CoreDashboard from '../components/Dashboard/Dashboard.js'; + +Vue.createApp({ + data: () => ({ + appSideMenuEntries: {} + }), + components: { + CoreNavigationCmpt, + CoreDashboard + /*, + "CoreFilterCmpt": CoreFilterCmpt, + "verticalsplit": verticalsplit, + "searchbar": searchbar*/ + } +}).mount('#main'); From 065dd1d081fee316681469d4339ae15e7089ac7b Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 17 Oct 2022 13:38:07 +0200 Subject: [PATCH 03/16] Added FHTW illustration image --- .../fh_technikum_wien_illustration_klein.png | Bin 0 -> 72696 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 skin/images/fh_technikum_wien_illustration_klein.png diff --git a/skin/images/fh_technikum_wien_illustration_klein.png b/skin/images/fh_technikum_wien_illustration_klein.png new file mode 100644 index 0000000000000000000000000000000000000000..cd9c7d18f71ebea41a7e8fc753ec4e78d0368751 GIT binary patch literal 72696 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 z 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 Date: Mon, 17 Oct 2022 13:40:18 +0200 Subject: [PATCH 04/16] Added Modal Component --- public/js/components/Base/Modal.js | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 public/js/components/Base/Modal.js diff --git a/public/js/components/Base/Modal.js b/public/js/components/Base/Modal.js new file mode 100644 index 000000000..ad3785e62 --- /dev/null +++ b/public/js/components/Base/Modal.js @@ -0,0 +1,38 @@ +export default { + name: "BaseModal", + props: [ + "id", + "cModalClass", // optional: add custom classes to modal class + "cModalDialogClass" // optional: add custom classes to modal-dialog class + ], + onMounted() + { + const modal = new bootstrap.Modal(this.$refs.modal, {}) + modal.show(); + }, + template: ` + ` +} From 699b76f4cb2aa625f6e087a138cb858fa5f36bae Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 25 Oct 2022 12:54:35 +0200 Subject: [PATCH 05/16] Added general used methods and computed property to Abstract Mixin Component . apiurl: returns app root and ci router from FHC_JS_DATA_OBJECT . formatDateTime: returns human readable date time . getDate: returns human readable date --- .../js/components/DashboardWidget/Abstract.js | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/public/js/components/DashboardWidget/Abstract.js b/public/js/components/DashboardWidget/Abstract.js index 8d0416e28..40cf7ce4f 100644 --- a/public/js/components/DashboardWidget/Abstract.js +++ b/public/js/components/DashboardWidget/Abstract.js @@ -8,5 +8,23 @@ export default { ], emits: [ "change" // TODO(chris): do we need this? - ] + ], + computed: { + apiurl() { + const app_root = FHC_JS_DATA_STORAGE_OBJECT.app_root; + const ci_router = FHC_JS_DATA_STORAGE_OBJECT.ci_router; + return app_root + ci_router; + } + }, + methods: { + formatDateTime: function(dateTime) { + const dt = new Date(dateTime); + return dt.getDate() + '.' + dt.getMonth() + '.' + dt.getFullYear() + ' | ' + + dt.getHours() + ':' + dt.getMinutes(); + }, + getDate: function(dateTime){ + const dt = new Date(dateTime); + return dt.getDate() + '.' + dt.getMonth() + '.' + dt.getFullYear(); + } + } } From c5d3f474577afe46d7b6387553581a900a7247cd Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 25 Oct 2022 12:55:49 +0200 Subject: [PATCH 06/16] Merged Modal Component, adapted body padding there --- public/js/components/Bootstrap/Modal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/components/Bootstrap/Modal.js b/public/js/components/Bootstrap/Modal.js index c99aabb58..9eb1c6559 100644 --- a/public/js/components/Bootstrap/Modal.js +++ b/public/js/components/Bootstrap/Modal.js @@ -91,7 +91,7 @@ export default { -