From 031fc3057c46245cd62fc39f2d11ee3f0a393e06 Mon Sep 17 00:00:00 2001 From: msquare Date: Tue, 27 Sep 2016 17:49:13 +0200 Subject: [PATCH] rename settings to event config and implement mvc pattern on it --- db/install.sql | 495 +++++++++++++----- db/update.sql | 32 -- .../event_config_controller.php} | 53 +- includes/engelsystem_provider.php | 4 +- ...ttings_model.php => EventConfig_model.php} | 10 +- includes/sys_menu.php | 2 +- includes/view/EventConfigView.php | 41 ++ public/index.php | 24 +- 8 files changed, 447 insertions(+), 214 deletions(-) rename includes/{pages/admin_settings.php => controller/event_config_controller.php} (55%) rename includes/model/{Settings_model.php => EventConfig_model.php} (78%) create mode 100644 includes/view/EventConfigView.php diff --git a/db/install.sql b/db/install.sql index f1c0d098..0222dc08 100644 --- a/db/install.sql +++ b/db/install.sql @@ -1,16 +1,19 @@ -- phpMyAdmin SQL Dump --- version 4.0.4.1 +-- version 4.5.2 -- http://www.phpmyadmin.net -- -- Host: localhost --- Erstellungszeit: 25. Aug 2015 um 15:29 --- Server Version: 5.6.12 --- PHP-Version: 5.5.3 +-- Erstellungszeit: 27. Sep 2016 um 17:48 +-- Server-Version: 10.1.10-MariaDB +-- PHP-Version: 7.0.4 -SET FOREIGN_KEY_CHECKS=0; SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; +-- +-- Datenbank: `engelsystem` +-- + -- -------------------------------------------------------- -- @@ -18,14 +21,29 @@ SET time_zone = "+00:00"; -- DROP TABLE IF EXISTS `AngelTypes`; -CREATE TABLE IF NOT EXISTS `AngelTypes` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `AngelTypes` ( + `id` int(11) NOT NULL, `name` varchar(50) NOT NULL DEFAULT '', `restricted` int(1) NOT NULL, `description` text NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `Name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; + `requires_driver_license` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `EventConfig` +-- + +DROP TABLE IF EXISTS `EventConfig`; +CREATE TABLE `EventConfig` ( + `event_name` varchar(255) DEFAULT NULL, + `buildup_start_date` int(11) DEFAULT NULL, + `event_start_date` int(11) DEFAULT NULL, + `event_end_date` int(11) DEFAULT NULL, + `teardown_end_date` int(11) DEFAULT NULL, + `event_welcome_msg` varchar(255) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -34,14 +52,11 @@ CREATE TABLE IF NOT EXISTS `AngelTypes` ( -- DROP TABLE IF EXISTS `GroupPrivileges`; -CREATE TABLE IF NOT EXISTS `GroupPrivileges` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `GroupPrivileges` ( + `id` int(11) NOT NULL, `group_id` int(11) NOT NULL, - `privilege_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `group_id` (`group_id`,`privilege_id`), - KEY `privilege_id` (`privilege_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=259 ; + `privilege_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Daten für Tabelle `GroupPrivileges` @@ -74,6 +89,7 @@ INSERT INTO `GroupPrivileges` (`id`, `group_id`, `privilege_id`) VALUES (235, -4, 27), (239, -4, 28), (236, -4, 32), +(218, -4, 39), (258, -3, 31), (247, -2, 3), (246, -2, 4), @@ -100,10 +116,9 @@ INSERT INTO `GroupPrivileges` (`id`, `group_id`, `privilege_id`) VALUES -- DROP TABLE IF EXISTS `Groups`; -CREATE TABLE IF NOT EXISTS `Groups` ( +CREATE TABLE `Groups` ( `Name` varchar(35) NOT NULL, - `UID` int(11) NOT NULL, - PRIMARY KEY (`UID`) + `UID` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- @@ -126,14 +141,12 @@ INSERT INTO `Groups` (`Name`, `UID`) VALUES -- DROP TABLE IF EXISTS `LogEntries`; -CREATE TABLE IF NOT EXISTS `LogEntries` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `LogEntries` ( + `id` int(11) NOT NULL, `timestamp` int(11) NOT NULL, `nick` text NOT NULL, - `message` text NOT NULL, - PRIMARY KEY (`id`), - KEY `timestamp` (`timestamp`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `message` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -142,18 +155,14 @@ CREATE TABLE IF NOT EXISTS `LogEntries` ( -- DROP TABLE IF EXISTS `Messages`; -CREATE TABLE IF NOT EXISTS `Messages` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `Messages` ( + `id` int(11) NOT NULL, `Datum` int(11) NOT NULL, `SUID` int(11) NOT NULL DEFAULT '0', `RUID` int(11) NOT NULL DEFAULT '0', `isRead` char(1) NOT NULL DEFAULT 'N', - `Text` text NOT NULL, - PRIMARY KEY (`id`), - KEY `Datum` (`Datum`), - KEY `SUID` (`SUID`), - KEY `RUID` (`RUID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Fuers interen Communikationssystem' AUTO_INCREMENT=1 ; + `Text` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Fuers interen Communikationssystem'; -- -------------------------------------------------------- @@ -162,17 +171,13 @@ CREATE TABLE IF NOT EXISTS `Messages` ( -- DROP TABLE IF EXISTS `NeededAngelTypes`; -CREATE TABLE IF NOT EXISTS `NeededAngelTypes` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `NeededAngelTypes` ( + `id` int(11) NOT NULL, `room_id` int(11) DEFAULT NULL, `shift_id` int(11) DEFAULT NULL, `angel_type_id` int(11) NOT NULL, - `count` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `room_id` (`room_id`,`angel_type_id`), - KEY `shift_id` (`shift_id`), - KEY `angel_type_id` (`angel_type_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `count` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -181,16 +186,14 @@ CREATE TABLE IF NOT EXISTS `NeededAngelTypes` ( -- DROP TABLE IF EXISTS `News`; -CREATE TABLE IF NOT EXISTS `News` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `News` ( + `ID` int(11) NOT NULL, `Datum` int(11) NOT NULL, `Betreff` varchar(150) NOT NULL DEFAULT '', `Text` text NOT NULL, `UID` int(11) NOT NULL DEFAULT '0', - `Treffen` tinyint(4) NOT NULL DEFAULT '0', - PRIMARY KEY (`ID`), - KEY `UID` (`UID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `Treffen` tinyint(4) NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -199,16 +202,13 @@ CREATE TABLE IF NOT EXISTS `News` ( -- DROP TABLE IF EXISTS `NewsComments`; -CREATE TABLE IF NOT EXISTS `NewsComments` ( - `ID` bigint(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `NewsComments` ( + `ID` bigint(11) NOT NULL, `Refid` int(11) NOT NULL DEFAULT '0', `Datum` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `Text` text NOT NULL, - `UID` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`ID`), - KEY `Refid` (`Refid`), - KEY `UID` (`UID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `UID` int(11) NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -217,13 +217,11 @@ CREATE TABLE IF NOT EXISTS `NewsComments` ( -- DROP TABLE IF EXISTS `Privileges`; -CREATE TABLE IF NOT EXISTS `Privileges` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `Privileges` ( + `id` int(11) NOT NULL, `name` varchar(128) NOT NULL, - `desc` varchar(1024) NOT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=39 ; + `desc` varchar(1024) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Daten für Tabelle `Privileges` @@ -266,7 +264,8 @@ INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES (35, 'shifts_json_export', 'Export shifts in JSON format'), (36, 'angeltypes', 'View angeltypes'), (37, 'user_angeltypes', 'Join angeltypes.'), -(38, 'shifttypes', 'Administrate shift types'); +(38, 'shifttypes', 'Administrate shift types'), +(39, 'admin_event_config', 'Allow editing event config'); -- -------------------------------------------------------- @@ -275,16 +274,13 @@ INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES -- DROP TABLE IF EXISTS `Questions`; -CREATE TABLE IF NOT EXISTS `Questions` ( - `QID` bigint(20) NOT NULL AUTO_INCREMENT, +CREATE TABLE `Questions` ( + `QID` bigint(20) NOT NULL, `UID` int(11) NOT NULL DEFAULT '0', `Question` text NOT NULL, `AID` int(11) DEFAULT NULL, - `Answer` text, - PRIMARY KEY (`QID`), - KEY `UID` (`UID`), - KEY `AID` (`AID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Fragen und Antworten' AUTO_INCREMENT=1 ; + `Answer` text +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Fragen und Antworten'; -- -------------------------------------------------------- @@ -293,16 +289,21 @@ CREATE TABLE IF NOT EXISTS `Questions` ( -- DROP TABLE IF EXISTS `Room`; -CREATE TABLE IF NOT EXISTS `Room` ( - `RID` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `Room` ( + `RID` int(11) NOT NULL, `Name` varchar(35) NOT NULL DEFAULT '', `Man` text, `FromPentabarf` char(1) NOT NULL DEFAULT 'N', `show` char(1) NOT NULL DEFAULT 'Y', - `Number` int(11) DEFAULT NULL, - PRIMARY KEY (`RID`), - UNIQUE KEY `Name` (`Name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; + `Number` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Daten für Tabelle `Room` +-- + +INSERT INTO `Room` (`RID`, `Name`, `Man`, `FromPentabarf`, `show`, `Number`) VALUES +(1, 'Testraum', NULL, '', 'Y', 0); -- -------------------------------------------------------- @@ -311,20 +312,15 @@ CREATE TABLE IF NOT EXISTS `Room` ( -- DROP TABLE IF EXISTS `ShiftEntry`; -CREATE TABLE IF NOT EXISTS `ShiftEntry` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `ShiftEntry` ( + `id` int(11) NOT NULL, `SID` int(11) NOT NULL DEFAULT '0', `TID` int(11) NOT NULL DEFAULT '0', `UID` int(11) NOT NULL DEFAULT '0', `Comment` text, `freeload_comment` text, - `freeloaded` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `TID` (`TID`), - KEY `UID` (`UID`), - KEY `SID` (`SID`,`TID`), - KEY `freeloaded` (`freeloaded`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + `freeloaded` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -333,8 +329,8 @@ CREATE TABLE IF NOT EXISTS `ShiftEntry` ( -- DROP TABLE IF EXISTS `Shifts`; -CREATE TABLE IF NOT EXISTS `Shifts` ( - `SID` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `Shifts` ( + `SID` int(11) NOT NULL, `title` text, `shifttype_id` int(11) NOT NULL, `start` int(11) NOT NULL, @@ -345,14 +341,8 @@ CREATE TABLE IF NOT EXISTS `Shifts` ( `created_by_user_id` int(11) DEFAULT NULL, `created_at_timestamp` int(11) NOT NULL, `edited_by_user_id` int(11) DEFAULT NULL, - `edited_at_timestamp` int(11) NOT NULL, - PRIMARY KEY (`SID`), - UNIQUE KEY `PSID` (`PSID`), - KEY `RID` (`RID`), - KEY `shifttype_id` (`shifttype_id`), - KEY `created_by_user_id` (`created_by_user_id`), - KEY `edited_by_user_id` (`edited_by_user_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=133 ; + `edited_at_timestamp` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- @@ -361,14 +351,12 @@ CREATE TABLE IF NOT EXISTS `Shifts` ( -- DROP TABLE IF EXISTS `ShiftTypes`; -CREATE TABLE IF NOT EXISTS `ShiftTypes` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `ShiftTypes` ( + `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `angeltype_id` int(11) DEFAULT NULL, - `description` text NOT NULL, - PRIMARY KEY (`id`), - KEY `angeltype_id` (`angeltype_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; + `description` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Daten für Tabelle `ShiftTypes` @@ -384,8 +372,8 @@ INSERT INTO `ShiftTypes` (`id`, `name`, `angeltype_id`, `description`) VALUES -- DROP TABLE IF EXISTS `User`; -CREATE TABLE IF NOT EXISTS `User` ( - `UID` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `User` ( + `UID` int(11) NOT NULL, `Nick` varchar(23) NOT NULL DEFAULT '', `Name` varchar(23) DEFAULT NULL, `Vorname` varchar(23) DEFAULT NULL, @@ -415,22 +403,15 @@ CREATE TABLE IF NOT EXISTS `User` ( `got_voucher` int(11) NOT NULL, `arrival_date` int(11) DEFAULT NULL, `planned_arrival_date` int(11) NOT NULL, - `planned_departure_date` int(11) DEFAULT NULL, - PRIMARY KEY (`UID`), - UNIQUE KEY `Nick` (`Nick`), - KEY `api_key` (`api_key`), - KEY `password_recovery_token` (`password_recovery_token`), - KEY `force_active` (`force_active`), - KEY `arrival_date` (`arrival_date`,`planned_arrival_date`), - KEY `planned_departure_date` (`planned_departure_date`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; + `planned_departure_date` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Daten für Tabelle `User` -- INSERT INTO `User` (`UID`, `Nick`, `Name`, `Vorname`, `Alter`, `Telefon`, `DECT`, `Handy`, `email`, `email_shiftinfo`, `jabber`, `Size`, `Passwort`, `password_recovery_token`, `Gekommen`, `Aktiv`, `force_active`, `Tshirt`, `color`, `Sprache`, `Menu`, `lastLogIn`, `CreateDate`, `Art`, `kommentar`, `Hometown`, `api_key`, `got_voucher`, `arrival_date`, `planned_arrival_date`, `planned_departure_date`) VALUES -(1, 'admin', 'Gates', 'Bill', 42, '', '-', '', 'admin@example.com', 1, '', 'XL', '$6$rounds=5000$hjXbIhoRTH3vKiRa$Wl2P2iI5T9iRR.HHu/YFHswBW0WVn0yxCfCiX0Keco9OdIoDK6bIAADswP6KvMCJSwTGdV8PgA8g8Xfw5l8BD1', NULL, 1, 1, 0, 1, 2, 'de_DE.UTF-8', 'L', 1439759300, '0000-00-00 00:00:00', '', '', '', '038850abdd1feb264406be3ffa746235', 3, 1439490478, 1436964455, 1440161255); +(1, 'admin', 'Gates', 'Bill', 42, '', '-', '', 'admin@example.com', 1, '', 'XL', '$6$rounds=5000$hjXbIhoRTH3vKiRa$Wl2P2iI5T9iRR.HHu/YFHswBW0WVn0yxCfCiX0Keco9OdIoDK6bIAADswP6KvMCJSwTGdV8PgA8g8Xfw5l8BD1', NULL, 1, 1, 0, 1, 0, 'de_DE.UTF-8', 'L', 1474990948, '0000-00-00 00:00:00', '', '', '', '038850abdd1feb264406be3ffa746235', 0, 1439490478, 1436964455, 1440161255); -- -------------------------------------------------------- @@ -439,18 +420,37 @@ INSERT INTO `User` (`UID`, `Nick`, `Name`, `Vorname`, `Alter`, `Telefon`, `DECT` -- DROP TABLE IF EXISTS `UserAngelTypes`; -CREATE TABLE IF NOT EXISTS `UserAngelTypes` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `UserAngelTypes` ( + `id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `angeltype_id` int(11) NOT NULL, `confirm_user_id` int(11) DEFAULT NULL, - `coordinator` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `user_id` (`user_id`,`angeltype_id`,`confirm_user_id`), - KEY `angeltype_id` (`angeltype_id`), - KEY `confirm_user_id` (`confirm_user_id`), - KEY `coordinator` (`coordinator`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ; + `coordinator` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `UserDriverLicenses` +-- + +DROP TABLE IF EXISTS `UserDriverLicenses`; +CREATE TABLE `UserDriverLicenses` ( + `user_id` int(11) NOT NULL, + `has_car` tinyint(1) NOT NULL, + `has_license_car` tinyint(1) NOT NULL, + `has_license_3_5t_transporter` tinyint(1) NOT NULL, + `has_license_7_5t_truck` tinyint(1) NOT NULL, + `has_license_12_5t_truck` tinyint(1) NOT NULL, + `has_license_forklift` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- +-- Daten für Tabelle `UserDriverLicenses` +-- + +INSERT INTO `UserDriverLicenses` (`user_id`, `has_car`, `has_license_car`, `has_license_3_5t_transporter`, `has_license_7_5t_truck`, `has_license_12_5t_truck`, `has_license_forklift`) VALUES +(1, 1, 1, 1, 1, 1, 1); -- -------------------------------------------------------- @@ -459,14 +459,11 @@ CREATE TABLE IF NOT EXISTS `UserAngelTypes` ( -- DROP TABLE IF EXISTS `UserGroups`; -CREATE TABLE IF NOT EXISTS `UserGroups` ( - `id` int(11) NOT NULL AUTO_INCREMENT, +CREATE TABLE `UserGroups` ( + `id` int(11) NOT NULL, `uid` int(11) NOT NULL, - `group_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `uid` (`uid`,`group_id`), - KEY `group_id` (`group_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ; + `group_id` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Daten für Tabelle `UserGroups` @@ -479,6 +476,241 @@ INSERT INTO `UserGroups` (`id`, `uid`, `group_id`) VALUES (2, 1, -4), (1, 1, -2); +-- +-- Indizes der exportierten Tabellen +-- + +-- +-- Indizes für die Tabelle `AngelTypes` +-- +ALTER TABLE `AngelTypes` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `Name` (`name`); + +-- +-- Indizes für die Tabelle `GroupPrivileges` +-- +ALTER TABLE `GroupPrivileges` + ADD PRIMARY KEY (`id`), + ADD KEY `group_id` (`group_id`,`privilege_id`), + ADD KEY `privilege_id` (`privilege_id`); + +-- +-- Indizes für die Tabelle `Groups` +-- +ALTER TABLE `Groups` + ADD PRIMARY KEY (`UID`); + +-- +-- Indizes für die Tabelle `LogEntries` +-- +ALTER TABLE `LogEntries` + ADD PRIMARY KEY (`id`), + ADD KEY `timestamp` (`timestamp`); + +-- +-- Indizes für die Tabelle `Messages` +-- +ALTER TABLE `Messages` + ADD PRIMARY KEY (`id`), + ADD KEY `Datum` (`Datum`), + ADD KEY `SUID` (`SUID`), + ADD KEY `RUID` (`RUID`); + +-- +-- Indizes für die Tabelle `NeededAngelTypes` +-- +ALTER TABLE `NeededAngelTypes` + ADD PRIMARY KEY (`id`), + ADD KEY `room_id` (`room_id`,`angel_type_id`), + ADD KEY `shift_id` (`shift_id`), + ADD KEY `angel_type_id` (`angel_type_id`); + +-- +-- Indizes für die Tabelle `News` +-- +ALTER TABLE `News` + ADD PRIMARY KEY (`ID`), + ADD KEY `UID` (`UID`); + +-- +-- Indizes für die Tabelle `NewsComments` +-- +ALTER TABLE `NewsComments` + ADD PRIMARY KEY (`ID`), + ADD KEY `Refid` (`Refid`), + ADD KEY `UID` (`UID`); + +-- +-- Indizes für die Tabelle `Privileges` +-- +ALTER TABLE `Privileges` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `name` (`name`); + +-- +-- Indizes für die Tabelle `Questions` +-- +ALTER TABLE `Questions` + ADD PRIMARY KEY (`QID`), + ADD KEY `UID` (`UID`), + ADD KEY `AID` (`AID`); + +-- +-- Indizes für die Tabelle `Room` +-- +ALTER TABLE `Room` + ADD PRIMARY KEY (`RID`), + ADD UNIQUE KEY `Name` (`Name`); + +-- +-- Indizes für die Tabelle `ShiftEntry` +-- +ALTER TABLE `ShiftEntry` + ADD PRIMARY KEY (`id`), + ADD KEY `TID` (`TID`), + ADD KEY `UID` (`UID`), + ADD KEY `SID` (`SID`,`TID`), + ADD KEY `freeloaded` (`freeloaded`); + +-- +-- Indizes für die Tabelle `Shifts` +-- +ALTER TABLE `Shifts` + ADD PRIMARY KEY (`SID`), + ADD UNIQUE KEY `PSID` (`PSID`), + ADD KEY `RID` (`RID`), + ADD KEY `shifttype_id` (`shifttype_id`), + ADD KEY `created_by_user_id` (`created_by_user_id`), + ADD KEY `edited_by_user_id` (`edited_by_user_id`); + +-- +-- Indizes für die Tabelle `ShiftTypes` +-- +ALTER TABLE `ShiftTypes` + ADD PRIMARY KEY (`id`), + ADD KEY `angeltype_id` (`angeltype_id`); + +-- +-- Indizes für die Tabelle `User` +-- +ALTER TABLE `User` + ADD PRIMARY KEY (`UID`), + ADD UNIQUE KEY `Nick` (`Nick`), + ADD KEY `api_key` (`api_key`), + ADD KEY `password_recovery_token` (`password_recovery_token`), + ADD KEY `force_active` (`force_active`), + ADD KEY `arrival_date` (`arrival_date`,`planned_arrival_date`), + ADD KEY `planned_departure_date` (`planned_departure_date`); + +-- +-- Indizes für die Tabelle `UserAngelTypes` +-- +ALTER TABLE `UserAngelTypes` + ADD PRIMARY KEY (`id`), + ADD KEY `user_id` (`user_id`,`angeltype_id`,`confirm_user_id`), + ADD KEY `angeltype_id` (`angeltype_id`), + ADD KEY `confirm_user_id` (`confirm_user_id`), + ADD KEY `coordinator` (`coordinator`); + +-- +-- Indizes für die Tabelle `UserDriverLicenses` +-- +ALTER TABLE `UserDriverLicenses` + ADD PRIMARY KEY (`user_id`); + +-- +-- Indizes für die Tabelle `UserGroups` +-- +ALTER TABLE `UserGroups` + ADD PRIMARY KEY (`id`), + ADD KEY `uid` (`uid`,`group_id`), + ADD KEY `group_id` (`group_id`); + +-- +-- AUTO_INCREMENT für exportierte Tabellen +-- + +-- +-- AUTO_INCREMENT für Tabelle `AngelTypes` +-- +ALTER TABLE `AngelTypes` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; +-- +-- AUTO_INCREMENT für Tabelle `GroupPrivileges` +-- +ALTER TABLE `GroupPrivileges` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=259; +-- +-- AUTO_INCREMENT für Tabelle `LogEntries` +-- +ALTER TABLE `LogEntries` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT für Tabelle `Messages` +-- +ALTER TABLE `Messages` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT für Tabelle `NeededAngelTypes` +-- +ALTER TABLE `NeededAngelTypes` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT für Tabelle `News` +-- +ALTER TABLE `News` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT für Tabelle `NewsComments` +-- +ALTER TABLE `NewsComments` + MODIFY `ID` bigint(11) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT für Tabelle `Privileges` +-- +ALTER TABLE `Privileges` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=40; +-- +-- AUTO_INCREMENT für Tabelle `Questions` +-- +ALTER TABLE `Questions` + MODIFY `QID` bigint(20) NOT NULL AUTO_INCREMENT; +-- +-- AUTO_INCREMENT für Tabelle `Room` +-- +ALTER TABLE `Room` + MODIFY `RID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; +-- +-- AUTO_INCREMENT für Tabelle `ShiftEntry` +-- +ALTER TABLE `ShiftEntry` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; +-- +-- AUTO_INCREMENT für Tabelle `Shifts` +-- +ALTER TABLE `Shifts` + MODIFY `SID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13; +-- +-- AUTO_INCREMENT für Tabelle `ShiftTypes` +-- +ALTER TABLE `ShiftTypes` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; +-- +-- AUTO_INCREMENT für Tabelle `User` +-- +ALTER TABLE `User` + MODIFY `UID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; +-- +-- AUTO_INCREMENT für Tabelle `UserAngelTypes` +-- +ALTER TABLE `UserAngelTypes` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; +-- +-- AUTO_INCREMENT für Tabelle `UserGroups` +-- +ALTER TABLE `UserGroups` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13; -- -- Constraints der exportierten Tabellen -- @@ -556,10 +788,15 @@ ALTER TABLE `UserAngelTypes` ADD CONSTRAINT `userangeltypes_ibfk_2` FOREIGN KEY (`angeltype_id`) REFERENCES `AngelTypes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `userangeltypes_ibfk_3` FOREIGN KEY (`confirm_user_id`) REFERENCES `User` (`UID`) ON DELETE SET NULL ON UPDATE CASCADE; +-- +-- Constraints der Tabelle `UserDriverLicenses` +-- +ALTER TABLE `UserDriverLicenses` + ADD CONSTRAINT `userdriverlicenses_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `User` (`UID`) ON DELETE CASCADE ON UPDATE CASCADE; + -- -- Constraints der Tabelle `UserGroups` -- ALTER TABLE `UserGroups` ADD CONSTRAINT `usergroups_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `Groups` (`UID`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `usergroups_ibfk_2` FOREIGN KEY (`uid`) REFERENCES `User` (`UID`) ON DELETE CASCADE ON UPDATE CASCADE; -SET FOREIGN_KEY_CHECKS=1; diff --git a/db/update.sql b/db/update.sql index ba0227d4..e69de29b 100644 --- a/db/update.sql +++ b/db/update.sql @@ -1,32 +0,0 @@ --- drivers license information -CREATE TABLE IF NOT EXISTS `UserDriverLicenses` ( - `user_id` int(11) NOT NULL, - `has_car` tinyint(1) NOT NULL, - `has_license_car` tinyint(1) NOT NULL, - `has_license_3_5t_transporter` tinyint(1) NOT NULL, - `has_license_7_5t_truck` tinyint(1) NOT NULL, - `has_license_12_5t_truck` tinyint(1) NOT NULL, - `has_license_forklift` tinyint(1) NOT NULL, - PRIMARY KEY (`user_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -ALTER TABLE `UserDriverLicenses` - ADD CONSTRAINT `userdriverlicenses_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `User` (`UID`) ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE `AngelTypes` ADD `requires_driver_license` BOOLEAN NOT NULL; - --- --------------------------------------------------------------------------------- --- Settings table -DROP TABLE IF EXISTS `Settings`; -CREATE TABLE IF NOT EXISTS `Settings` ( - `event_name` varchar(255) DEFAULT NULL, - `buildup_start_date` int(11) DEFAULT NULL, - `event_start_date` int(11) DEFAULT NULL, - `event_end_date` int(11) DEFAULT NULL, - `teardown_end_date` int(11) DEFAULT NULL, - `event_welcome_msg` varchar(255) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; - --- Added privilege for Admin Settings -INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES (39, 'admin_settings', 'Settings Page for Admin'); - -INSERT INTO `GroupPrivileges` (`id`, `group_id`, `privilege_id`) VALUES (218, -4, 39); diff --git a/includes/pages/admin_settings.php b/includes/controller/event_config_controller.php similarity index 55% rename from includes/pages/admin_settings.php rename to includes/controller/event_config_controller.php index ebee1305..7e951214 100644 --- a/includes/pages/admin_settings.php +++ b/includes/controller/event_config_controller.php @@ -1,10 +1,15 @@ isOk(); if ($ok) { - $result = Settings_update($event_name, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date, $event_welcome_msg); + $result = EventConfig_update($event_name, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date, $event_welcome_msg); if ($result === false) - engelsystem_error("Unable to update settings."); + engelsystem_error("Unable to update event config."); + engelsystem_log("Changed event config: $event_name, $event_welcome_msg, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date"); success(_("Settings saved.")); redirect(page_link_to('admin_settings')); } } - return page_with_title(admin_settings_title(), [ - msg(), - form([ - div('row', [ - div('col-md-6', [ - form_text('event_name', _("Event Name"), $event_name), - form_info('', _("Event Name is shown on the start page.")), - form_textarea('event_welcome_msg', _("Event Welcome Message"), $event_welcome_msg), - form_info('', _("Welcome message is shown after successful registration. You can use markdown.")) - ]), - div('col-md-3', [ - form_date('buildup_start_date', _("Buildup date"), $buildup_start_date), - form_date('event_start_date', _("Event start date"), $event_start_date) - ]), - div('col-md-3', [ - form_date('teardown_end_date', _("Teardown end date"), $teardown_end_date), - form_date('event_end_date', _("Event end date"), $event_end_date) - ]) - ]), - div('row', [ - div('col-md-6', [ - form_submit('submit', _("Save")) - ]) - ]) - ]) - ]); + return [ + event_config_title(), + EventConfig_edit_view($event_name, $event_welcome_msg, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date) + ]; } -?> + +?> \ No newline at end of file diff --git a/includes/engelsystem_provider.php b/includes/engelsystem_provider.php index 70d40ce3..5e293366 100644 --- a/includes/engelsystem_provider.php +++ b/includes/engelsystem_provider.php @@ -11,6 +11,7 @@ require_once realpath(__DIR__ . '/../includes/sys_page.php'); require_once realpath(__DIR__ . '/../includes/sys_template.php'); require_once realpath(__DIR__ . '/../includes/model/AngelType_model.php'); +require_once realpath(__DIR__ . '/../includes/model/EventConfig_model.php'); require_once realpath(__DIR__ . '/../includes/model/LogEntries_model.php'); require_once realpath(__DIR__ . '/../includes/model/Message_model.php'); require_once realpath(__DIR__ . '/../includes/model/NeededAngelTypes_model.php'); @@ -22,9 +23,9 @@ require_once realpath(__DIR__ . '/../includes/model/UserAngelTypes_model.php'); require_once realpath(__DIR__ . '/../includes/model/UserDriverLicenses_model.php'); require_once realpath(__DIR__ . '/../includes/model/UserGroups_model.php'); require_once realpath(__DIR__ . '/../includes/model/User_model.php'); -require_once realpath(__DIR__ . '/../includes/model/Settings_model.php'); require_once realpath(__DIR__ . '/../includes/view/AngelTypes_view.php'); +require_once realpath(__DIR__ . '/../includes/view/EventConfig_view.php'); require_once realpath(__DIR__ . '/../includes/view/Questions_view.php'); require_once realpath(__DIR__ . '/../includes/view/Rooms_view.php'); require_once realpath(__DIR__ . '/../includes/view/Shifts_view.php'); @@ -35,6 +36,7 @@ require_once realpath(__DIR__ . '/../includes/view/UserDriverLicenses_view.php') require_once realpath(__DIR__ . '/../includes/view/User_view.php'); require_once realpath(__DIR__ . '/../includes/controller/angeltypes_controller.php'); +require_once realpath(__DIR__ . '/../includes/controller/event_config_controller.php'); require_once realpath(__DIR__ . '/../includes/controller/rooms_controller.php'); require_once realpath(__DIR__ . '/../includes/controller/shifts_controller.php'); require_once realpath(__DIR__ . '/../includes/controller/shifttypes_controller.php'); diff --git a/includes/model/Settings_model.php b/includes/model/EventConfig_model.php similarity index 78% rename from includes/model/Settings_model.php rename to includes/model/EventConfig_model.php index 07e3b677..57ba1d0f 100644 --- a/includes/model/Settings_model.php +++ b/includes/model/EventConfig_model.php @@ -3,8 +3,8 @@ /** * Get settings. */ -function Settings() { - $settings = sql_select("SELECT * FROM `Settings` LIMIT 1"); +function EventConfig() { + $settings = sql_select("SELECT * FROM `EventConfig` LIMIT 1"); if ($settings === false) return false; if (count($settings) > 0) @@ -22,9 +22,9 @@ function Settings() { * @param int $teardown_end_date * @param string $event_welcome_msg */ -function Settings_update($event_name, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date, $event_welcome_msg) { +function EventConfig_update($event_name, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date, $event_welcome_msg) { if (Settings() == null) { - return sql_query("INSERT INTO `Settings` SET + return sql_query("INSERT INTO `EventConfig` SET `event_name`=" . sql_null($event_name) . ", `buildup_start_date`=" . sql_null($buildup_start_date) . ", `event_start_date`=" . sql_null($event_start_date) . ", @@ -32,7 +32,7 @@ function Settings_update($event_name, $buildup_start_date, $event_start_date, $e `teardown_end_date`=" . sql_null($teardown_end_date) . ", `event_welcome_msg`=" . sql_null($event_welcome_msg)); } - return sql_query("UPDATE `Settings` SET + return sql_query("UPDATE `EventConfig` SET `event_name`=" . sql_null($event_name) . ", `buildup_start_date`=" . sql_null($buildup_start_date) . ", `event_start_date`=" . sql_null($event_start_date) . ", diff --git a/includes/sys_menu.php b/includes/sys_menu.php index 96522fa7..c6e916b4 100644 --- a/includes/sys_menu.php +++ b/includes/sys_menu.php @@ -126,7 +126,7 @@ function make_navigation() { "admin_groups" => admin_groups_title(), "admin_import" => admin_import_title(), "admin_log" => admin_log_title(), - "admin_settings" => admin_settings_title() + "admin_event_config" => event_config_title() ); foreach ($admin_pages as $page => $title) diff --git a/includes/view/EventConfigView.php b/includes/view/EventConfigView.php new file mode 100644 index 00000000..a00a26ed --- /dev/null +++ b/includes/view/EventConfigView.php @@ -0,0 +1,41 @@ + \ No newline at end of file diff --git a/public/index.php b/public/index.php index 0d7eb782..31668687 100644 --- a/public/index.php +++ b/public/index.php @@ -2,19 +2,20 @@ require_once realpath(__DIR__ . '/../includes/engelsystem_provider.php'); $free_pages = array( - 'stats', - 'shifts_json_export_all', - 'user_password_recovery', + 'admin_event_config', + 'angeltypes', 'api', + 'atom', 'credits', - 'angeltypes', - 'users', - 'user_driver_licenses', 'ical', - 'shifts_json_export', + 'login', 'shifts', - 'atom', - 'login' + 'shifts_json_export', + 'shifts_json_export_all', + 'stats', + 'users', + 'user_driver_licenses', + 'user_password_recovery' ); // Gewünschte Seite/Funktion @@ -63,6 +64,8 @@ if (isset($_REQUEST['p']) && preg_match("/^[a-z0-9_]*$/i", $_REQUEST['p']) && (i list($title, $content) = user_driver_licenses_controller(); } elseif ($p == "shifttypes") { list($title, $content) = shifttypes_controller(); + } elseif ($p == "admin_event_config") { + list($title, $content) = event_config_edit_controller(); } elseif ($p == "news") { $title = news_title(); $content = user_news(); @@ -133,9 +136,6 @@ if (isset($_REQUEST['p']) && preg_match("/^[a-z0-9_]*$/i", $_REQUEST['p']) && (i } elseif ($p == "admin_log") { $title = admin_log_title(); $content = admin_log(); - } elseif ($p == "admin_settings") { - $title = admin_settings_title(); - $content = admin_settings(); } elseif ($p == "credits") { require_once realpath(__DIR__ . '/../includes/pages/guest_credits.php'); $title = credits_title();