PSR-2 formatting
This commit is contained in:
parent
b839e40106
commit
7313e15ce8
|
@ -66,4 +66,3 @@ $config = [
|
|||
'pw' => "",
|
||||
'db' => "engelsystem"
|
||||
];
|
||||
?>
|
||||
|
|
|
@ -3,14 +3,16 @@
|
|||
/**
|
||||
* Text for Angeltype related links.
|
||||
*/
|
||||
function angeltypes_title() {
|
||||
function angeltypes_title()
|
||||
{
|
||||
return _("Angeltypes");
|
||||
}
|
||||
|
||||
/**
|
||||
* Route angeltype actions.
|
||||
*/
|
||||
function angeltypes_controller() {
|
||||
function angeltypes_controller()
|
||||
{
|
||||
$action = strip_request_item('action', 'list');
|
||||
|
||||
switch ($action) {
|
||||
|
@ -33,14 +35,16 @@ function angeltypes_controller() {
|
|||
*
|
||||
* @param AngelType $angeltype_id
|
||||
*/
|
||||
function angeltype_link($angeltype_id) {
|
||||
function angeltype_link($angeltype_id)
|
||||
{
|
||||
return page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Job description for all angeltypes (public to everyone)
|
||||
*/
|
||||
function angeltypes_about_controller() {
|
||||
function angeltypes_about_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (isset($user)) {
|
||||
|
@ -58,7 +62,8 @@ function angeltypes_about_controller() {
|
|||
/**
|
||||
* Delete an Angeltype.
|
||||
*/
|
||||
function angeltype_delete_controller() {
|
||||
function angeltype_delete_controller()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (! in_array('admin_angel_types', $privileges)) {
|
||||
|
@ -82,7 +87,8 @@ function angeltype_delete_controller() {
|
|||
/**
|
||||
* Change an Angeltype.
|
||||
*/
|
||||
function angeltype_edit_controller() {
|
||||
function angeltype_edit_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
// In supporter mode only allow to modify description
|
||||
|
@ -146,7 +152,8 @@ function angeltype_edit_controller() {
|
|||
/**
|
||||
* View details of a given angeltype.
|
||||
*/
|
||||
function angeltype_controller() {
|
||||
function angeltype_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
if (! in_array('angeltypes', $privileges)) {
|
||||
|
@ -167,7 +174,8 @@ function angeltype_controller() {
|
|||
/**
|
||||
* View a list of all angeltypes.
|
||||
*/
|
||||
function angeltypes_list_controller() {
|
||||
function angeltypes_list_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
if (! in_array('angeltypes', $privileges)) {
|
||||
|
@ -210,7 +218,8 @@ function angeltypes_list_controller() {
|
|||
/**
|
||||
* Loads an angeltype from given angeltype_id request param.
|
||||
*/
|
||||
function load_angeltype() {
|
||||
function load_angeltype()
|
||||
{
|
||||
if (! isset($_REQUEST['angeltype_id'])) {
|
||||
redirect(page_link_to('angeltypes'));
|
||||
}
|
||||
|
@ -223,4 +232,3 @@ function load_angeltype() {
|
|||
|
||||
return $angeltype;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function event_config_title() {
|
||||
function event_config_title()
|
||||
{
|
||||
return _("Event config");
|
||||
}
|
||||
|
||||
function event_config_edit_controller() {
|
||||
function event_config_edit_controller()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (! in_array('admin_event_config', $privileges)) {
|
||||
|
@ -99,5 +101,3 @@ function event_config_edit_controller() {
|
|||
EventConfig_edit_view($event_name, $event_welcome_msg, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date)
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
|
@ -10,7 +10,8 @@ use Engelsystem\ShiftCalendarRenderer;
|
|||
/**
|
||||
* View a room with its shifts.
|
||||
*/
|
||||
function room_controller() {
|
||||
function room_controller()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (! in_array('view_rooms', $privileges)) {
|
||||
|
@ -54,7 +55,8 @@ function room_controller() {
|
|||
/**
|
||||
* Dispatch different room actions.
|
||||
*/
|
||||
function rooms_controller() {
|
||||
function rooms_controller()
|
||||
{
|
||||
if (! isset($_REQUEST['action'])) {
|
||||
$_REQUEST['action'] = 'list';
|
||||
}
|
||||
|
@ -68,18 +70,21 @@ function rooms_controller() {
|
|||
}
|
||||
}
|
||||
|
||||
function room_link($room) {
|
||||
function room_link($room)
|
||||
{
|
||||
return page_link_to('rooms') . '&action=view&room_id=' . $room['RID'];
|
||||
}
|
||||
|
||||
function room_edit_link($room) {
|
||||
function room_edit_link($room)
|
||||
{
|
||||
return page_link_to('admin_rooms') . '&show=edit&id=' . $room['RID'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads room by request param room_id
|
||||
*/
|
||||
function load_room() {
|
||||
function load_room()
|
||||
{
|
||||
if (! test_request_int('room_id')) {
|
||||
redirect(page_link_to());
|
||||
}
|
||||
|
@ -91,5 +96,3 @@ function load_room() {
|
|||
|
||||
return $room;
|
||||
}
|
||||
|
||||
?>
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Sign up for a shift.
|
||||
*/
|
||||
function shift_entry_add_controller() {
|
||||
function shift_entry_add_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
if (isset($_REQUEST['shift_id']) && preg_match("/^[0-9]*$/", $_REQUEST['shift_id'])) {
|
||||
|
@ -60,7 +61,6 @@ function shift_entry_add_controller() {
|
|||
if (isset($_REQUEST['submit'])) {
|
||||
$selected_type_id = $type_id;
|
||||
if (in_array('user_shifts_admin', $privileges) || in_array('shiftentry_edit_angeltype_supporter', $privileges)) {
|
||||
|
||||
if (sql_num_query("SELECT * FROM `User` WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1") == 0) {
|
||||
redirect(page_link_to('user_shifts'));
|
||||
}
|
||||
|
@ -147,7 +147,8 @@ function shift_entry_add_controller() {
|
|||
/**
|
||||
* Remove somebody from a shift.
|
||||
*/
|
||||
function shift_entry_delete_controller() {
|
||||
function shift_entry_delete_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
if (! isset($_REQUEST['entry_id']) || ! test_request_int('entry_id')) {
|
||||
|
@ -183,5 +184,3 @@ function shift_entry_delete_controller() {
|
|||
}
|
||||
redirect(shift_link($shift_entry_source));
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,22 +1,26 @@
|
|||
<?php
|
||||
use Engelsystem\ShiftSignupState;
|
||||
|
||||
function shift_link($shift) {
|
||||
function shift_link($shift)
|
||||
{
|
||||
return page_link_to('shifts') . '&action=view&shift_id=' . $shift['SID'];
|
||||
}
|
||||
|
||||
function shift_delete_link($shift) {
|
||||
function shift_delete_link($shift)
|
||||
{
|
||||
return page_link_to('user_shifts') . '&delete_shift=' . $shift['SID'];
|
||||
}
|
||||
|
||||
function shift_edit_link($shift) {
|
||||
function shift_edit_link($shift)
|
||||
{
|
||||
return page_link_to('user_shifts') . '&edit_shift=' . $shift['SID'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit a single shift.
|
||||
*/
|
||||
function shift_edit_controller() {
|
||||
function shift_edit_controller()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
// Schicht bearbeiten
|
||||
|
@ -146,7 +150,8 @@ function shift_edit_controller() {
|
|||
]);
|
||||
}
|
||||
|
||||
function shift_delete_controller() {
|
||||
function shift_delete_controller()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (! in_array('user_shifts_admin', $privileges)) {
|
||||
|
@ -179,7 +184,8 @@ function shift_delete_controller() {
|
|||
]);
|
||||
}
|
||||
|
||||
function shift_controller() {
|
||||
function shift_controller()
|
||||
{
|
||||
global $user, $privileges;
|
||||
|
||||
if (! in_array('user_shifts', $privileges)) {
|
||||
|
@ -221,7 +227,8 @@ function shift_controller() {
|
|||
];
|
||||
}
|
||||
|
||||
function shifts_controller() {
|
||||
function shifts_controller()
|
||||
{
|
||||
if (! isset($_REQUEST['action'])) {
|
||||
redirect(page_link_to('user_shifts'));
|
||||
}
|
||||
|
@ -239,7 +246,8 @@ function shifts_controller() {
|
|||
/**
|
||||
* Redirects the user to his next shift.
|
||||
*/
|
||||
function shift_next_controller() {
|
||||
function shift_next_controller()
|
||||
{
|
||||
global $user, $privileges;
|
||||
|
||||
if (! in_array('user_shifts', $privileges)) {
|
||||
|
@ -261,7 +269,8 @@ function shift_next_controller() {
|
|||
/**
|
||||
* Export all shifts using api-key.
|
||||
*/
|
||||
function shifts_json_export_all_controller() {
|
||||
function shifts_json_export_all_controller()
|
||||
{
|
||||
global $api_key;
|
||||
|
||||
if ($api_key == "") {
|
||||
|
@ -289,7 +298,8 @@ function shifts_json_export_all_controller() {
|
|||
* Export filtered shifts via JSON.
|
||||
* (Like iCal Export or shifts view)
|
||||
*/
|
||||
function shifts_json_export_controller() {
|
||||
function shifts_json_export_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['key']) || ! preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) {
|
||||
|
@ -315,10 +325,9 @@ function shifts_json_export_controller() {
|
|||
/**
|
||||
* Returns users shifts to export.
|
||||
*/
|
||||
function load_ical_shifts() {
|
||||
function load_ical_shifts()
|
||||
{
|
||||
global $user;
|
||||
|
||||
return Shifts_by_user($user);
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,13 +1,15 @@
|
|||
<?php
|
||||
|
||||
function shifttype_link($shifttype) {
|
||||
function shifttype_link($shifttype)
|
||||
{
|
||||
return page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype['id'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a shifttype.
|
||||
*/
|
||||
function shifttype_delete_controller() {
|
||||
function shifttype_delete_controller()
|
||||
{
|
||||
if (! isset($_REQUEST['shifttype_id'])) {
|
||||
redirect(page_link_to('shifttypes'));
|
||||
}
|
||||
|
@ -41,7 +43,8 @@ function shifttype_delete_controller() {
|
|||
/**
|
||||
* Edit or create shift type.
|
||||
*/
|
||||
function shifttype_edit_controller() {
|
||||
function shifttype_edit_controller()
|
||||
{
|
||||
$shifttype_id = null;
|
||||
$name = "";
|
||||
$angeltype_id = null;
|
||||
|
@ -110,7 +113,8 @@ function shifttype_edit_controller() {
|
|||
];
|
||||
}
|
||||
|
||||
function shifttype_controller() {
|
||||
function shifttype_controller()
|
||||
{
|
||||
if (! isset($_REQUEST['shifttype_id'])) {
|
||||
redirect(page_link_to('shifttypes'));
|
||||
}
|
||||
|
@ -136,7 +140,8 @@ function shifttype_controller() {
|
|||
/**
|
||||
* List all shift types.
|
||||
*/
|
||||
function shifttypes_list_controller() {
|
||||
function shifttypes_list_controller()
|
||||
{
|
||||
$shifttypes = ShiftTypes();
|
||||
if ($shifttypes === false) {
|
||||
engelsystem_error("Unable to load shifttypes.");
|
||||
|
@ -151,14 +156,16 @@ function shifttypes_list_controller() {
|
|||
/**
|
||||
* Text for shift type related links.
|
||||
*/
|
||||
function shifttypes_title() {
|
||||
function shifttypes_title()
|
||||
{
|
||||
return _("Shifttypes");
|
||||
}
|
||||
|
||||
/**
|
||||
* Route shift type actions
|
||||
*/
|
||||
function shifttypes_controller() {
|
||||
function shifttypes_controller()
|
||||
{
|
||||
if (! isset($_REQUEST['action'])) {
|
||||
$_REQUEST['action'] = 'list';
|
||||
}
|
||||
|
@ -175,5 +182,3 @@ function shifttypes_controller() {
|
|||
return shifttype_delete_controller();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Display a hint for team/angeltype supporters if there are unconfirmed users for his angeltype.
|
||||
*/
|
||||
function user_angeltypes_unconfirmed_hint() {
|
||||
function user_angeltypes_unconfirmed_hint()
|
||||
{
|
||||
global $user;
|
||||
|
||||
$unconfirmed_user_angeltypes = User_unconfirmed_AngelTypes($user);
|
||||
|
@ -22,7 +23,8 @@ function user_angeltypes_unconfirmed_hint() {
|
|||
/**
|
||||
* Remove all unconfirmed users from a specific angeltype.
|
||||
*/
|
||||
function user_angeltypes_delete_all_controller() {
|
||||
function user_angeltypes_delete_all_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['angeltype_id'])) {
|
||||
|
@ -58,7 +60,8 @@ function user_angeltypes_delete_all_controller() {
|
|||
/**
|
||||
* Confirm all unconfirmed users for an angeltype.
|
||||
*/
|
||||
function user_angeltypes_confirm_all_controller() {
|
||||
function user_angeltypes_confirm_all_controller()
|
||||
{
|
||||
global $user, $privileges;
|
||||
|
||||
if (! isset($_REQUEST['angeltype_id'])) {
|
||||
|
@ -100,7 +103,8 @@ function user_angeltypes_confirm_all_controller() {
|
|||
/**
|
||||
* Confirm an user for an angeltype.
|
||||
*/
|
||||
function user_angeltype_confirm_controller() {
|
||||
function user_angeltype_confirm_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['user_angeltype_id'])) {
|
||||
|
@ -151,7 +155,8 @@ function user_angeltype_confirm_controller() {
|
|||
/**
|
||||
* Remove a user from an Angeltype.
|
||||
*/
|
||||
function user_angeltype_delete_controller() {
|
||||
function user_angeltype_delete_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['user_angeltype_id'])) {
|
||||
|
@ -204,7 +209,8 @@ function user_angeltype_delete_controller() {
|
|||
/**
|
||||
* Update an UserAngelType.
|
||||
*/
|
||||
function user_angeltype_update_controller() {
|
||||
function user_angeltype_update_controller()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (! in_array('admin_angel_types', $privileges)) {
|
||||
|
@ -261,7 +267,8 @@ function user_angeltype_update_controller() {
|
|||
/**
|
||||
* User joining an Angeltype (Or supporter doing this for him).
|
||||
*/
|
||||
function user_angeltype_add_controller() {
|
||||
function user_angeltype_add_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
$angeltype = load_angeltype();
|
||||
|
@ -304,7 +311,8 @@ function user_angeltype_add_controller() {
|
|||
/**
|
||||
* A user joins an angeltype.
|
||||
*/
|
||||
function user_angeltype_join_controller($angeltype) {
|
||||
function user_angeltype_join_controller($angeltype)
|
||||
{
|
||||
global $user, $privileges;
|
||||
|
||||
$user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype);
|
||||
|
@ -337,7 +345,8 @@ function user_angeltype_join_controller($angeltype) {
|
|||
/**
|
||||
* Route UserAngelType actions.
|
||||
*/
|
||||
function user_angeltypes_controller() {
|
||||
function user_angeltypes_controller()
|
||||
{
|
||||
if (! isset($_REQUEST['action'])) {
|
||||
redirect(page_link_to('angeltypes'));
|
||||
}
|
||||
|
@ -359,5 +368,3 @@ function user_angeltypes_controller() {
|
|||
redirect(page_link_to('angeltypes'));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Generates a hint, if user joined angeltypes that require a driving license and the user has no driver license information provided.
|
||||
*/
|
||||
function user_driver_license_required_hint() {
|
||||
function user_driver_license_required_hint()
|
||||
{
|
||||
global $user;
|
||||
|
||||
$angeltypes = User_angeltypes($user);
|
||||
|
@ -26,7 +27,8 @@ function user_driver_license_required_hint() {
|
|||
/**
|
||||
* Route user driver licenses actions.
|
||||
*/
|
||||
function user_driver_licenses_controller() {
|
||||
function user_driver_licenses_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($user)) {
|
||||
|
@ -47,7 +49,8 @@ function user_driver_licenses_controller() {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function user_driver_license_edit_link($user = null) {
|
||||
function user_driver_license_edit_link($user = null)
|
||||
{
|
||||
if ($user == null) {
|
||||
return page_link_to('user_driver_licenses');
|
||||
}
|
||||
|
@ -57,7 +60,8 @@ function user_driver_license_edit_link($user = null) {
|
|||
/**
|
||||
* Loads the user for the driver license.
|
||||
*/
|
||||
function user_driver_license_load_user() {
|
||||
function user_driver_license_load_user()
|
||||
{
|
||||
global $user;
|
||||
|
||||
$user_source = $user;
|
||||
|
@ -75,7 +79,8 @@ function user_driver_license_load_user() {
|
|||
/**
|
||||
* Edit a users driver license information.
|
||||
*/
|
||||
function user_driver_license_edit_controller() {
|
||||
function user_driver_license_edit_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
$user_source = user_driver_license_load_user();
|
||||
|
@ -128,5 +133,3 @@ function user_driver_license_edit_controller() {
|
|||
UserDriverLicense_edit_view($user_source, $wants_to_drive, $user_driver_license)
|
||||
];
|
||||
}
|
||||
|
||||
?>
|
|
@ -5,7 +5,8 @@ use Engelsystem\ShiftCalendarRenderer;
|
|||
/**
|
||||
* Route user actions.
|
||||
*/
|
||||
function users_controller() {
|
||||
function users_controller()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($user)) {
|
||||
|
@ -34,7 +35,8 @@ function users_controller() {
|
|||
/**
|
||||
* Delete a user, requires to enter own password for reasons.
|
||||
*/
|
||||
function user_delete_controller() {
|
||||
function user_delete_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
if (isset($_REQUEST['user_id'])) {
|
||||
|
@ -81,23 +83,28 @@ function user_delete_controller() {
|
|||
];
|
||||
}
|
||||
|
||||
function users_link() {
|
||||
function users_link()
|
||||
{
|
||||
return page_link_to('users');
|
||||
}
|
||||
|
||||
function user_edit_link($user) {
|
||||
function user_edit_link($user)
|
||||
{
|
||||
return page_link_to('admin_user') . '&user_id=' . $user['UID'];
|
||||
}
|
||||
|
||||
function user_delete_link($user) {
|
||||
function user_delete_link($user)
|
||||
{
|
||||
return page_link_to('users') . '&action=delete&user_id=' . $user['UID'];
|
||||
}
|
||||
|
||||
function user_link($user) {
|
||||
function user_link($user)
|
||||
{
|
||||
return page_link_to('users') . '&action=view&user_id=' . $user['UID'];
|
||||
}
|
||||
|
||||
function user_edit_vouchers_controller() {
|
||||
function user_edit_vouchers_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
if (isset($_REQUEST['user_id'])) {
|
||||
|
@ -141,7 +148,8 @@ function user_edit_vouchers_controller() {
|
|||
];
|
||||
}
|
||||
|
||||
function user_controller() {
|
||||
function user_controller()
|
||||
{
|
||||
global $privileges, $user;
|
||||
|
||||
$user_source = $user;
|
||||
|
@ -180,7 +188,8 @@ function user_controller() {
|
|||
/**
|
||||
* List all users.
|
||||
*/
|
||||
function users_list_controller() {
|
||||
function users_list_controller()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (! in_array('admin_user', $privileges)) {
|
||||
|
@ -210,7 +219,8 @@ function users_list_controller() {
|
|||
/**
|
||||
* Second step of password recovery: set a new password using the token link from email
|
||||
*/
|
||||
function user_password_recovery_set_new_controller() {
|
||||
function user_password_recovery_set_new_controller()
|
||||
{
|
||||
global $min_password_length;
|
||||
$user_source = User_by_password_recovery_token($_REQUEST['token']);
|
||||
if ($user_source == null) {
|
||||
|
@ -244,7 +254,8 @@ function user_password_recovery_set_new_controller() {
|
|||
/**
|
||||
* First step of password recovery: display a form that asks for your email and send email with recovery link
|
||||
*/
|
||||
function user_password_recovery_start_controller() {
|
||||
function user_password_recovery_start_controller()
|
||||
{
|
||||
if (isset($_REQUEST['submit'])) {
|
||||
$valid = true;
|
||||
|
||||
|
@ -280,7 +291,8 @@ function user_password_recovery_start_controller() {
|
|||
* User password recovery in 2 steps.
|
||||
* (By email)
|
||||
*/
|
||||
function user_password_recovery_controller() {
|
||||
function user_password_recovery_controller()
|
||||
{
|
||||
if (isset($_REQUEST['token'])) {
|
||||
return user_password_recovery_set_new_controller();
|
||||
} else {
|
||||
|
@ -291,14 +303,16 @@ function user_password_recovery_controller() {
|
|||
/**
|
||||
* Menu title for password recovery.
|
||||
*/
|
||||
function user_password_recovery_title() {
|
||||
function user_password_recovery_title()
|
||||
{
|
||||
return _("Password recovery");
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads a user from param user_id.
|
||||
*/
|
||||
function load_user() {
|
||||
function load_user()
|
||||
{
|
||||
if (! isset($_REQUEST['user_id'])) {
|
||||
redirect(page_link_to());
|
||||
}
|
||||
|
@ -316,7 +330,8 @@ function load_user() {
|
|||
return $user;
|
||||
}
|
||||
|
||||
function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter) {
|
||||
function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter)
|
||||
{
|
||||
$shifts = Shifts_by_ShiftsFilter($shiftsFilter);
|
||||
$needed_angeltypes_source = NeededAngeltypes_by_ShiftsFilter($shiftsFilter);
|
||||
$shift_entries_source = ShiftEntries_by_ShiftsFilter($shiftsFilter);
|
||||
|
@ -367,5 +382,3 @@ function shiftCalendarRendererByShiftFilter(ShiftsFilter $shiftsFilter) {
|
|||
|
||||
return new ShiftCalendarRenderer($filtered_shifts, $needed_angeltypes, $shift_entries, $shiftsFilter);
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
/**
|
||||
* This file includes all needed functions, connects to the db etc.
|
||||
*/
|
||||
if(!is_readable(__DIR__ . '/../vendor/autoload.php')){
|
||||
if (!is_readable(__DIR__ . '/../vendor/autoload.php')) {
|
||||
die('Please run composer.phar install');
|
||||
}
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
@ -103,5 +103,3 @@ gettext_init();
|
|||
sql_connect($config['host'], $config['user'], $config['pw'], $config['db']);
|
||||
|
||||
load_auth();
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function engelsystem_email_to_user($recipient_user, $title, $message, $not_if_its_me = false) {
|
||||
function engelsystem_email_to_user($recipient_user, $title, $message, $not_if_its_me = false)
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ($not_if_its_me && $user['UID'] == $recipient_user['UID']) {
|
||||
|
@ -15,11 +16,10 @@ function engelsystem_email_to_user($recipient_user, $title, $message, $not_if_it
|
|||
return engelsystem_email($recipient_user['email'], $title, $message);
|
||||
}
|
||||
|
||||
function engelsystem_email($address, $title, $message) {
|
||||
function engelsystem_email($address, $title, $message)
|
||||
{
|
||||
$result = mail($address, $title, $message, "Content-Type: text/plain; charset=UTF-8\r\nFrom: Engelsystem <noreply@engelsystem.de>");
|
||||
if ($result === false) {
|
||||
engelsystem_error('Unable to send email.');
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
*
|
||||
* @param string $message
|
||||
*/
|
||||
function engelsystem_error($message) {
|
||||
function engelsystem_error($message)
|
||||
{
|
||||
raw_output($message);
|
||||
}
|
||||
|
||||
?>
|
|
@ -7,7 +7,8 @@
|
|||
* @param unknown $colors colors for the data rows
|
||||
* @param unknown $data the data
|
||||
*/
|
||||
function bargraph($dom_id, $key, $row_names, $colors, $data) {
|
||||
function bargraph($dom_id, $key, $row_names, $colors, $data)
|
||||
{
|
||||
$labels = [];
|
||||
foreach ($data as $dataset) {
|
||||
$labels[] = $dataset[$key];
|
||||
|
@ -37,5 +38,3 @@ function bargraph($dom_id, $key, $row_names, $colors, $data) {
|
|||
});
|
||||
</script>';
|
||||
}
|
||||
|
||||
?>
|
|
@ -9,21 +9,24 @@ $default_locale = 'en_US.UTF-8';
|
|||
/**
|
||||
* Return currently active locale
|
||||
*/
|
||||
function locale() {
|
||||
function locale()
|
||||
{
|
||||
return $_SESSION['locale'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns two letter language code from currently active locale
|
||||
*/
|
||||
function locale_short() {
|
||||
function locale_short()
|
||||
{
|
||||
return substr(locale(), 0, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes gettext for internationalization and updates the sessions locale to use for translation.
|
||||
*/
|
||||
function gettext_init() {
|
||||
function gettext_init()
|
||||
{
|
||||
global $locales, $default_locale;
|
||||
|
||||
if (isset($_REQUEST['set_locale']) && isset($locales[$_REQUEST['set_locale']])) {
|
||||
|
@ -43,7 +46,8 @@ function gettext_init() {
|
|||
*
|
||||
* @param string $locale
|
||||
*/
|
||||
function gettext_locale($locale = null) {
|
||||
function gettext_locale($locale = null)
|
||||
{
|
||||
if ($locale == null) {
|
||||
$locale = $_SESSION['locale'];
|
||||
}
|
||||
|
@ -57,7 +61,8 @@ function gettext_locale($locale = null) {
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
function make_langselect() {
|
||||
function make_langselect()
|
||||
{
|
||||
global $locales;
|
||||
$URL = $_SERVER["REQUEST_URI"] . (strpos($_SERVER["REQUEST_URI"], "?") > 0 ? '&' : '?') . "set_locale=";
|
||||
|
||||
|
@ -67,5 +72,3 @@ function make_langselect() {
|
|||
}
|
||||
return $items;
|
||||
}
|
||||
|
||||
?>
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Gibt zwischengespeicherte Fehlermeldungen zurück und löscht den Zwischenspeicher
|
||||
*/
|
||||
function msg() {
|
||||
function msg()
|
||||
{
|
||||
if (! isset($_SESSION['msg'])) {
|
||||
return "";
|
||||
}
|
||||
|
@ -15,28 +16,32 @@ function msg() {
|
|||
/**
|
||||
* Rendert eine Information
|
||||
*/
|
||||
function info($msg, $immediatly = false) {
|
||||
function info($msg, $immediatly = false)
|
||||
{
|
||||
return alert('info', $msg, $immediatly);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert eine Fehlermeldung
|
||||
*/
|
||||
function error($msg, $immediatly = false) {
|
||||
function error($msg, $immediatly = false)
|
||||
{
|
||||
return alert('danger', $msg, $immediatly);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert eine Erfolgsmeldung
|
||||
*/
|
||||
function success($msg, $immediatly = false) {
|
||||
function success($msg, $immediatly = false)
|
||||
{
|
||||
return alert('success', $msg, $immediatly);
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders an alert with given alert-* class.
|
||||
*/
|
||||
function alert($class, $msg, $immediatly = false) {
|
||||
function alert($class, $msg, $immediatly = false)
|
||||
{
|
||||
if ($immediatly) {
|
||||
if ($msg == "") {
|
||||
return "";
|
||||
|
@ -49,5 +54,3 @@ function alert($class, $msg, $immediatly = false) {
|
|||
}
|
||||
$_SESSION['msg'] .= alert($class, $msg, true);
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function mail_shift_change($old_shift, $new_shift) {
|
||||
function mail_shift_change($old_shift, $new_shift)
|
||||
{
|
||||
$users = ShiftEntries_by_shift($old_shift["SID"]);
|
||||
$old_room = Room($old_shift["RID"]);
|
||||
$new_room = Room($new_shift["RID"]);
|
||||
|
@ -55,7 +56,8 @@ function mail_shift_change($old_shift, $new_shift) {
|
|||
}
|
||||
}
|
||||
|
||||
function mail_shift_delete($shift) {
|
||||
function mail_shift_delete($shift)
|
||||
{
|
||||
$users = ShiftEntries_by_shift($shift["SID"]);
|
||||
$room = Room($shift["RID"]);
|
||||
|
||||
|
@ -73,7 +75,8 @@ function mail_shift_delete($shift) {
|
|||
}
|
||||
}
|
||||
|
||||
function mail_shift_assign($user, $shift) {
|
||||
function mail_shift_assign($user, $shift)
|
||||
{
|
||||
if ($user["email_shiftinfo"]) {
|
||||
$room = Room($shift["RID"]);
|
||||
|
||||
|
@ -87,7 +90,8 @@ function mail_shift_assign($user, $shift) {
|
|||
}
|
||||
}
|
||||
|
||||
function mail_shift_removed($user, $shift) {
|
||||
function mail_shift_removed($user, $shift)
|
||||
{
|
||||
if ($user["email_shiftinfo"]) {
|
||||
$room = Room($shift["RID"]);
|
||||
|
||||
|
@ -100,5 +104,3 @@ function mail_shift_removed($user, $shift) {
|
|||
engelsystem_email_to_user($user, '[engelsystem] ' . _("Removed from Shift"), $message, true);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
/**
|
||||
* @param User $user_source
|
||||
*/
|
||||
function mail_user_delete($user) {
|
||||
function mail_user_delete($user)
|
||||
{
|
||||
engelsystem_email_to_user($user, '[engelsystem] ' . _("Your account has been deleted"), _("Your angelsystem account has been deleted. If you have any questions regarding your account deletion, please contact heaven."));
|
||||
}
|
||||
?>
|
|
@ -5,7 +5,8 @@ use Engelsystem\ValidationResult;
|
|||
* Returns an array containing the basic attributes of angeltypes.
|
||||
* FIXME! This is the big sign for needing entity objects
|
||||
*/
|
||||
function AngelType_new() {
|
||||
function AngelType_new()
|
||||
{
|
||||
return [
|
||||
'id' => null,
|
||||
'name' => "",
|
||||
|
@ -27,7 +28,8 @@ function AngelType_new() {
|
|||
* The angeltype
|
||||
* @return ValidationResult
|
||||
*/
|
||||
function AngelType_validate_contact_user_id($angeltype) {
|
||||
function AngelType_validate_contact_user_id($angeltype)
|
||||
{
|
||||
if (! isset($angeltype['contact_user_id'])) {
|
||||
return new ValidationResult(true, null);
|
||||
}
|
||||
|
@ -46,7 +48,8 @@ function AngelType_validate_contact_user_id($angeltype) {
|
|||
* @param Angeltype $angeltype
|
||||
* The angeltype
|
||||
*/
|
||||
function AngelType_contact_info($angeltype) {
|
||||
function AngelType_contact_info($angeltype)
|
||||
{
|
||||
if (isset($angeltype['contact_user_id'])) {
|
||||
$contact_user = User($angeltype['contact_user_id']);
|
||||
$contact_data = [
|
||||
|
@ -73,7 +76,8 @@ function AngelType_contact_info($angeltype) {
|
|||
*
|
||||
* @param Angeltype $angeltype
|
||||
*/
|
||||
function AngelType_delete($angeltype) {
|
||||
function AngelType_delete($angeltype)
|
||||
{
|
||||
$result = sql_query("
|
||||
DELETE FROM `AngelTypes`
|
||||
WHERE `id`='" . sql_escape($angeltype['id']) . "'
|
||||
|
@ -91,7 +95,8 @@ function AngelType_delete($angeltype) {
|
|||
* @param Angeltype $angeltype
|
||||
* The angeltype
|
||||
*/
|
||||
function AngelType_update($angeltype) {
|
||||
function AngelType_update($angeltype)
|
||||
{
|
||||
$result = sql_query("
|
||||
UPDATE `AngelTypes` SET
|
||||
`name`='" . sql_escape($angeltype['name']) . "',
|
||||
|
@ -118,7 +123,8 @@ function AngelType_update($angeltype) {
|
|||
* The angeltype
|
||||
* @return the created angeltype
|
||||
*/
|
||||
function AngelType_create($angeltype) {
|
||||
function AngelType_create($angeltype)
|
||||
{
|
||||
$result = sql_query("
|
||||
INSERT INTO `AngelTypes` SET
|
||||
`name`='" . sql_escape($angeltype['name']) . "',
|
||||
|
@ -148,7 +154,8 @@ function AngelType_create($angeltype) {
|
|||
* The angeltype the name is for
|
||||
* @return ValidationResult result and validated name
|
||||
*/
|
||||
function AngelType_validate_name($name, $angeltype) {
|
||||
function AngelType_validate_name($name, $angeltype)
|
||||
{
|
||||
$name = strip_item($name);
|
||||
if ($name == "") {
|
||||
return new ValidationResult(false, "");
|
||||
|
@ -175,7 +182,8 @@ function AngelType_validate_name($name, $angeltype) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function AngelTypes_with_user($user) {
|
||||
function AngelTypes_with_user($user)
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT `AngelTypes`.*,
|
||||
`UserAngelTypes`.`id` as `user_angeltype_id`,
|
||||
|
@ -194,7 +202,8 @@ function AngelTypes_with_user($user) {
|
|||
/**
|
||||
* Returns all angeltypes.
|
||||
*/
|
||||
function AngelTypes() {
|
||||
function AngelTypes()
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT *
|
||||
FROM `AngelTypes`
|
||||
|
@ -208,7 +217,8 @@ function AngelTypes() {
|
|||
/**
|
||||
* Returns AngelType id array
|
||||
*/
|
||||
function AngelType_ids() {
|
||||
function AngelType_ids()
|
||||
{
|
||||
$result = sql_select("SELECT `id` FROM `AngelTypes`");
|
||||
if ($result === false) {
|
||||
engelsystem_error("Unable to load angeltypes.");
|
||||
|
@ -222,7 +232,8 @@ function AngelType_ids() {
|
|||
* @param $angeltype_id angelType
|
||||
* ID
|
||||
*/
|
||||
function AngelType($angeltype_id) {
|
||||
function AngelType($angeltype_id)
|
||||
{
|
||||
$angelType_source = sql_select("SELECT * FROM `AngelTypes` WHERE `id`='" . sql_escape($angeltype_id) . "'");
|
||||
if ($angelType_source === false) {
|
||||
engelsystem_error("Unable to load angeltype.");
|
||||
|
@ -232,5 +243,3 @@ function AngelType($angeltype_id) {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Get event config.
|
||||
*/
|
||||
function EventConfig() {
|
||||
function EventConfig()
|
||||
{
|
||||
$event_config = sql_select("SELECT * FROM `EventConfig` LIMIT 1");
|
||||
if ($event_config === false) {
|
||||
engelsystem_error("Unable to load event config.");
|
||||
|
@ -25,7 +26,8 @@ function EventConfig() {
|
|||
* @param int $teardown_end_date
|
||||
* @param string $event_welcome_msg
|
||||
*/
|
||||
function EventConfig_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 (EventConfig() == null) {
|
||||
return sql_query("INSERT INTO `EventConfig` SET
|
||||
`event_name`=" . sql_null($event_name) . ",
|
||||
|
@ -43,4 +45,3 @@ function EventConfig_update($event_name, $buildup_start_date, $event_start_date,
|
|||
`teardown_end_date`=" . sql_null($teardown_end_date) . ",
|
||||
`event_welcome_msg`=" . sql_null($event_welcome_msg));
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -7,21 +7,24 @@
|
|||
* @param $message Log
|
||||
* Message
|
||||
*/
|
||||
function LogEntry_create($nick, $message) {
|
||||
function LogEntry_create($nick, $message)
|
||||
{
|
||||
return sql_query("INSERT INTO `LogEntries` SET `timestamp`='" . sql_escape(time()) . "', `nick`='" . sql_escape($nick) . "', `message`='" . sql_escape($message) . "'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns log entries with maximum count of 10000.
|
||||
*/
|
||||
function LogEntries() {
|
||||
function LogEntries()
|
||||
{
|
||||
return sql_select("SELECT * FROM `LogEntries` ORDER BY `timestamp` DESC LIMIT 10000");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns log entries filtered by a keyword
|
||||
*/
|
||||
function LogEntries_filter($keyword) {
|
||||
function LogEntries_filter($keyword)
|
||||
{
|
||||
if ($keyword == "") {
|
||||
return LogEntries();
|
||||
}
|
||||
|
@ -31,8 +34,7 @@ function LogEntries_filter($keyword) {
|
|||
/**
|
||||
* Delete all log entries.
|
||||
*/
|
||||
function LogEntries_clear_all() {
|
||||
function LogEntries_clear_all()
|
||||
{
|
||||
return sql_query("TRUNCATE `LogEntries`");
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Returns Message id array
|
||||
*/
|
||||
function Message_ids() {
|
||||
function Message_ids()
|
||||
{
|
||||
return sql_select("SELECT `id` FROM `Messages`");
|
||||
}
|
||||
|
||||
|
@ -13,7 +14,8 @@ function Message_ids() {
|
|||
* @param $message_id message
|
||||
* ID
|
||||
*/
|
||||
function Message($message_id) {
|
||||
function Message($message_id)
|
||||
{
|
||||
$message_source = sql_select("SELECT * FROM `Messages` WHERE `id`='" . sql_escape($message_id) . "' LIMIT 1");
|
||||
if ($message_source === false) {
|
||||
return false;
|
||||
|
@ -34,7 +36,8 @@ function Message($message_id) {
|
|||
* @param $text Text
|
||||
* of Message
|
||||
*/
|
||||
function Message_send($receiver_user_id, $text) {
|
||||
function Message_send($receiver_user_id, $text)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$text = preg_replace("/([^\p{L}\p{P}\p{Z}\p{N}\n]{1,})/ui", '', strip_tags($text));
|
||||
|
@ -47,5 +50,3 @@ function Message_send($receiver_user_id, $text) {
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
?>
|
|
@ -16,7 +16,8 @@
|
|||
* @param int $count
|
||||
* How many angels are needed?
|
||||
*/
|
||||
function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count) {
|
||||
function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count)
|
||||
{
|
||||
$result = sql_query("
|
||||
INSERT INTO `NeededAngelTypes` SET
|
||||
`shift_id`=" . sql_null($shift_id) . ",
|
||||
|
@ -35,7 +36,8 @@ function NeededAngelType_add($shift_id, $angeltype_id, $room_id, $count) {
|
|||
* @param int $shift_id
|
||||
* id of the shift
|
||||
*/
|
||||
function NeededAngelTypes_delete_by_shift($shift_id) {
|
||||
function NeededAngelTypes_delete_by_shift($shift_id)
|
||||
{
|
||||
return sql_query("DELETE FROM `NeededAngelTypes` WHERE `shift_id`='" . sql_escape($shift_id) . "'");
|
||||
}
|
||||
|
||||
|
@ -45,7 +47,8 @@ function NeededAngelTypes_delete_by_shift($shift_id) {
|
|||
* @param int $room_id
|
||||
* id of the room
|
||||
*/
|
||||
function NeededAngelTypes_delete_by_room($room_id) {
|
||||
function NeededAngelTypes_delete_by_room($room_id)
|
||||
{
|
||||
return sql_query("DELETE FROM `NeededAngelTypes` WHERE `room_id`='" . sql_escape($room_id) . "'");
|
||||
}
|
||||
|
||||
|
@ -55,7 +58,8 @@ function NeededAngelTypes_delete_by_room($room_id) {
|
|||
* @param int $shiftID
|
||||
* id of shift
|
||||
*/
|
||||
function NeededAngelTypes_by_shift($shiftId) {
|
||||
function NeededAngelTypes_by_shift($shiftId)
|
||||
{
|
||||
$needed_angeltypes_source = sql_select("
|
||||
SELECT `NeededAngelTypes`.*, `AngelTypes`.`id`, `AngelTypes`.`name`, `AngelTypes`.`restricted`, `AngelTypes`.`no_self_signup`
|
||||
FROM `NeededAngelTypes`
|
||||
|
@ -101,5 +105,3 @@ function NeededAngelTypes_by_shift($shiftId) {
|
|||
|
||||
return $needed_angeltypes;
|
||||
}
|
||||
|
||||
?>
|
|
@ -4,7 +4,8 @@
|
|||
* returns a list of rooms.
|
||||
* @param boolean $show_all returns also hidden rooms when true
|
||||
*/
|
||||
function Rooms($show_all = false) {
|
||||
function Rooms($show_all = false)
|
||||
{
|
||||
return sql_select("SELECT * FROM `Room`" . ($show_all ? "" : " WHERE `show`='Y'") . " ORDER BY `Name`");
|
||||
}
|
||||
|
||||
|
@ -13,7 +14,8 @@ function Rooms($show_all = false) {
|
|||
*
|
||||
* @param int $room_id
|
||||
*/
|
||||
function Room_delete($room_id) {
|
||||
function Room_delete($room_id)
|
||||
{
|
||||
return sql_query("DELETE FROM `Room` WHERE `RID`=" . sql_escape($room_id));
|
||||
}
|
||||
|
||||
|
@ -27,7 +29,8 @@ function Room_delete($room_id) {
|
|||
* @param boolean $public
|
||||
* Is the room visible for angels?
|
||||
*/
|
||||
function Room_create($name, $from_frab, $public) {
|
||||
function Room_create($name, $from_frab, $public)
|
||||
{
|
||||
$result = sql_query("
|
||||
INSERT INTO `Room` SET
|
||||
`Name`='" . sql_escape($name) . "',
|
||||
|
@ -45,7 +48,8 @@ function Room_create($name, $from_frab, $public) {
|
|||
*
|
||||
* @param $room_id RID
|
||||
*/
|
||||
function Room($room_id) {
|
||||
function Room($room_id)
|
||||
{
|
||||
$room_source = sql_select("SELECT * FROM `Room` WHERE `RID`='" . sql_escape($room_id) . "' AND `show` = 'Y'");
|
||||
|
||||
if ($room_source === false) {
|
||||
|
@ -56,5 +60,3 @@ function Room($room_id) {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
* Returns an array with the attributes of shift entries.
|
||||
* FIXME! Needs entity object.
|
||||
*/
|
||||
function ShiftEntry_new() {
|
||||
function ShiftEntry_new()
|
||||
{
|
||||
return [
|
||||
'id' => null,
|
||||
'SID' => null,
|
||||
|
@ -19,14 +20,16 @@ function ShiftEntry_new() {
|
|||
/**
|
||||
* Counts all freeloaded shifts.
|
||||
*/
|
||||
function ShiftEntries_freeleaded_count() {
|
||||
function ShiftEntries_freeleaded_count()
|
||||
{
|
||||
return sql_select_single_cell("SELECT COUNT(*) FROM `ShiftEntry` WHERE `freeloaded` = 1");
|
||||
}
|
||||
|
||||
/**
|
||||
* List users subsribed to a given shift.
|
||||
*/
|
||||
function ShiftEntries_by_shift($shift_id) {
|
||||
function ShiftEntries_by_shift($shift_id)
|
||||
{
|
||||
return sql_select("
|
||||
SELECT `User`.`Nick`, `User`.`email`, `User`.`email_shiftinfo`, `User`.`Sprache`, `User`.`Gekommen`, `ShiftEntry`.`UID`, `ShiftEntry`.`TID`, `ShiftEntry`.`SID`, `AngelTypes`.`name` as `angel_type_name`, `ShiftEntry`.`Comment`, `ShiftEntry`.`freeloaded`
|
||||
FROM `ShiftEntry`
|
||||
|
@ -40,7 +43,8 @@ function ShiftEntries_by_shift($shift_id) {
|
|||
*
|
||||
* @param ShiftEntry $shift_entry
|
||||
*/
|
||||
function ShiftEntry_create($shift_entry) {
|
||||
function ShiftEntry_create($shift_entry)
|
||||
{
|
||||
mail_shift_assign(User($shift_entry['UID']), Shift($shift_entry['SID']));
|
||||
return sql_query("INSERT INTO `ShiftEntry` SET
|
||||
`SID`='" . sql_escape($shift_entry['SID']) . "',
|
||||
|
@ -54,7 +58,8 @@ function ShiftEntry_create($shift_entry) {
|
|||
/**
|
||||
* Update a shift entry.
|
||||
*/
|
||||
function ShiftEntry_update($shift_entry) {
|
||||
function ShiftEntry_update($shift_entry)
|
||||
{
|
||||
return sql_query("UPDATE `ShiftEntry` SET
|
||||
`Comment`='" . sql_escape($shift_entry['Comment']) . "',
|
||||
`freeload_comment`='" . sql_escape($shift_entry['freeload_comment']) . "',
|
||||
|
@ -65,7 +70,8 @@ function ShiftEntry_update($shift_entry) {
|
|||
/**
|
||||
* Get a shift entry.
|
||||
*/
|
||||
function ShiftEntry($shift_entry_id) {
|
||||
function ShiftEntry($shift_entry_id)
|
||||
{
|
||||
$shift_entry = sql_select("SELECT * FROM `ShiftEntry` WHERE `id`='" . sql_escape($shift_entry_id) . "'");
|
||||
if ($shift_entry === false) {
|
||||
return false;
|
||||
|
@ -79,7 +85,8 @@ function ShiftEntry($shift_entry_id) {
|
|||
/**
|
||||
* Delete a shift entry.
|
||||
*/
|
||||
function ShiftEntry_delete($shift_entry_id) {
|
||||
function ShiftEntry_delete($shift_entry_id)
|
||||
{
|
||||
$shift_entry = ShiftEntry($shift_entry_id);
|
||||
mail_shift_removed(User($shift_entry['UID']), Shift($shift_entry['SID']));
|
||||
return sql_query("DELETE FROM `ShiftEntry` WHERE `id`='" . sql_escape($shift_entry_id) . "'");
|
||||
|
@ -90,7 +97,8 @@ function ShiftEntry_delete($shift_entry_id) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function ShiftEntries_upcoming_for_user($user) {
|
||||
function ShiftEntries_upcoming_for_user($user)
|
||||
{
|
||||
return sql_select("
|
||||
SELECT *
|
||||
FROM `ShiftEntry`
|
||||
|
@ -107,7 +115,8 @@ function ShiftEntries_upcoming_for_user($user) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function ShiftEntries_finished_by_user($user) {
|
||||
function ShiftEntries_finished_by_user($user)
|
||||
{
|
||||
return sql_select("
|
||||
SELECT *
|
||||
FROM `ShiftEntry`
|
||||
|
@ -126,7 +135,8 @@ function ShiftEntries_finished_by_user($user) {
|
|||
* @param int $shift_id
|
||||
* @param int $angeltype_id
|
||||
*/
|
||||
function ShiftEntries_by_shift_and_angeltype($shift_id, $angeltype_id) {
|
||||
function ShiftEntries_by_shift_and_angeltype($shift_id, $angeltype_id)
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT *
|
||||
FROM `ShiftEntry`
|
||||
|
@ -142,11 +152,10 @@ function ShiftEntries_by_shift_and_angeltype($shift_id, $angeltype_id) {
|
|||
/**
|
||||
* Returns all freeloaded shifts for given user.
|
||||
*/
|
||||
function ShiftEntries_freeloaded_by_user($user) {
|
||||
function ShiftEntries_freeloaded_by_user($user)
|
||||
{
|
||||
return sql_select("SELECT *
|
||||
FROM `ShiftEntry`
|
||||
WHERE `freeloaded` = 1
|
||||
AND `UID`=" . sql_escape($user['UID']));
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -6,7 +6,8 @@ namespace Engelsystem;
|
|||
* BO to represent if there are free slots on a shift for a given angeltype
|
||||
* and if signup for a given user is possible (or not, because of collisions, etc.)
|
||||
*/
|
||||
class ShiftSignupState {
|
||||
class ShiftSignupState
|
||||
{
|
||||
|
||||
/**
|
||||
* Shift has free places
|
||||
|
@ -47,7 +48,8 @@ class ShiftSignupState {
|
|||
|
||||
private $freeEntries;
|
||||
|
||||
public function __construct($state, $free_entries) {
|
||||
public function __construct($state, $free_entries)
|
||||
{
|
||||
$this->state = $state;
|
||||
$this->freeEntries = $free_entries;
|
||||
}
|
||||
|
@ -58,7 +60,8 @@ class ShiftSignupState {
|
|||
* @param ShiftSignupState $shiftSignupState
|
||||
* The other state to combine
|
||||
*/
|
||||
public function combineWith(ShiftSignupState $shiftSignupState) {
|
||||
public function combineWith(ShiftSignupState $shiftSignupState)
|
||||
{
|
||||
$this->freeEntries += $shiftSignupState->getFreeEntries();
|
||||
|
||||
if ($this->valueForState($shiftSignupState->state) > $this->valueForState($this->state)) {
|
||||
|
@ -66,7 +69,8 @@ class ShiftSignupState {
|
|||
}
|
||||
}
|
||||
|
||||
private function valueForState($state) {
|
||||
private function valueForState($state)
|
||||
{
|
||||
switch ($state) {
|
||||
case ShiftSignupState::SHIFT_ENDED:
|
||||
return 100;
|
||||
|
@ -90,7 +94,8 @@ class ShiftSignupState {
|
|||
/**
|
||||
* Returns true, if signup is allowed
|
||||
*/
|
||||
public function isSignupAllowed() {
|
||||
public function isSignupAllowed()
|
||||
{
|
||||
switch ($this->state) {
|
||||
case ShiftSignupState::FREE:
|
||||
case ShiftSignupState::ADMIN:
|
||||
|
@ -102,16 +107,16 @@ class ShiftSignupState {
|
|||
/**
|
||||
* Return the shift signup state
|
||||
*/
|
||||
public function getState() {
|
||||
public function getState()
|
||||
{
|
||||
return $this->state;
|
||||
}
|
||||
|
||||
/**
|
||||
* How many places are free in this shift for the angeltype?
|
||||
*/
|
||||
public function getFreeEntries() {
|
||||
public function getFreeEntries()
|
||||
{
|
||||
return $this->freeEntries;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -4,7 +4,8 @@
|
|||
* Delete a shift type.
|
||||
* @param int $shifttype_id
|
||||
*/
|
||||
function ShiftType_delete($shifttype_id) {
|
||||
function ShiftType_delete($shifttype_id)
|
||||
{
|
||||
return sql_query("DELETE FROM `ShiftTypes` WHERE `id`='" . sql_escape($shifttype_id) . "'");
|
||||
}
|
||||
|
||||
|
@ -16,7 +17,8 @@ function ShiftType_delete($shifttype_id) {
|
|||
* @param int $angeltype_id
|
||||
* @param string $description
|
||||
*/
|
||||
function ShiftType_update($shifttype_id, $name, $angeltype_id, $description) {
|
||||
function ShiftType_update($shifttype_id, $name, $angeltype_id, $description)
|
||||
{
|
||||
return sql_query("UPDATE `ShiftTypes` SET
|
||||
`name`='" . sql_escape($name) . "',
|
||||
`angeltype_id`=" . sql_null($angeltype_id) . ",
|
||||
|
@ -32,7 +34,8 @@ function ShiftType_update($shifttype_id, $name, $angeltype_id, $description) {
|
|||
* @param string $description
|
||||
* @return new shifttype id
|
||||
*/
|
||||
function ShiftType_create($name, $angeltype_id, $description) {
|
||||
function ShiftType_create($name, $angeltype_id, $description)
|
||||
{
|
||||
$result = sql_query("INSERT INTO `ShiftTypes` SET
|
||||
`name`='" . sql_escape($name) . "',
|
||||
`angeltype_id`=" . sql_null($angeltype_id) . ",
|
||||
|
@ -48,7 +51,8 @@ function ShiftType_create($name, $angeltype_id, $description) {
|
|||
*
|
||||
* @param int $shifttype_id
|
||||
*/
|
||||
function ShiftType($shifttype_id) {
|
||||
function ShiftType($shifttype_id)
|
||||
{
|
||||
$shifttype = sql_select("SELECT * FROM `ShiftTypes` WHERE `id`='" . sql_escape($shifttype_id) . "'");
|
||||
if ($shifttype === false) {
|
||||
engelsystem_error('Unable to load shift type.');
|
||||
|
@ -62,8 +66,7 @@ function ShiftType($shifttype_id) {
|
|||
/**
|
||||
* Get all shift types.
|
||||
*/
|
||||
function ShiftTypes() {
|
||||
function ShiftTypes()
|
||||
{
|
||||
return sql_select("SELECT * FROM `ShiftTypes` ORDER BY `name`");
|
||||
}
|
||||
|
||||
?>
|
|
@ -7,7 +7,8 @@ namespace Engelsystem;
|
|||
*
|
||||
* @author msquare
|
||||
*/
|
||||
class ShiftsFilter {
|
||||
class ShiftsFilter
|
||||
{
|
||||
|
||||
/**
|
||||
* How long can the time interval be?
|
||||
|
@ -42,7 +43,8 @@ class ShiftsFilter {
|
|||
|
||||
private $endTime = null;
|
||||
|
||||
public function __construct($user_shifts_admin, $rooms, $types) {
|
||||
public function __construct($user_shifts_admin, $rooms, $types)
|
||||
{
|
||||
$this->user_shifts_admin = $user_shifts_admin;
|
||||
$this->rooms = $rooms;
|
||||
$this->types = $types;
|
||||
|
@ -56,26 +58,31 @@ class ShiftsFilter {
|
|||
}
|
||||
}
|
||||
|
||||
public function getStartTime() {
|
||||
public function getStartTime()
|
||||
{
|
||||
return $this->startTime;
|
||||
}
|
||||
|
||||
public function setStartTime($startTime) {
|
||||
public function setStartTime($startTime)
|
||||
{
|
||||
$this->startTime = $startTime;
|
||||
}
|
||||
|
||||
public function getEndTime() {
|
||||
public function getEndTime()
|
||||
{
|
||||
return $this->endTime;
|
||||
}
|
||||
|
||||
public function setEndTime($endTime) {
|
||||
public function setEndTime($endTime)
|
||||
{
|
||||
if ($endTime - $this->startTime > ShiftsFilter::MAX_DURATION) {
|
||||
$endTime = $this->startTime + ShiftsFilter::MAX_DURATION;
|
||||
}
|
||||
$this->endTime = $endTime;
|
||||
}
|
||||
|
||||
public function getTypes() {
|
||||
public function getTypes()
|
||||
{
|
||||
if (count($this->types) == 0) {
|
||||
return [
|
||||
0
|
||||
|
@ -84,11 +91,13 @@ class ShiftsFilter {
|
|||
return $this->types;
|
||||
}
|
||||
|
||||
public function setTypes($types) {
|
||||
public function setTypes($types)
|
||||
{
|
||||
$this->types = $types;
|
||||
}
|
||||
|
||||
public function getRooms() {
|
||||
public function getRooms()
|
||||
{
|
||||
if (count($this->rooms) == 0) {
|
||||
return [
|
||||
0
|
||||
|
@ -97,25 +106,28 @@ class ShiftsFilter {
|
|||
return $this->rooms;
|
||||
}
|
||||
|
||||
public function setRooms($rooms) {
|
||||
public function setRooms($rooms)
|
||||
{
|
||||
$this->rooms = $rooms;
|
||||
}
|
||||
|
||||
public function isUserShiftsAdmin() {
|
||||
public function isUserShiftsAdmin()
|
||||
{
|
||||
return $this->userShiftsAdmin;
|
||||
}
|
||||
|
||||
public function setUserShiftsAdmin($userShiftsAdmin) {
|
||||
public function setUserShiftsAdmin($userShiftsAdmin)
|
||||
{
|
||||
$this->userShiftsAdmin = $userShiftsAdmin;
|
||||
}
|
||||
|
||||
public function getFilled() {
|
||||
public function getFilled()
|
||||
{
|
||||
return $this->filled;
|
||||
}
|
||||
|
||||
public function setFilled($filled) {
|
||||
public function setFilled($filled)
|
||||
{
|
||||
$this->filled = $filled;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -2,7 +2,8 @@
|
|||
use Engelsystem\ShiftsFilter;
|
||||
use Engelsystem\ShiftSignupState;
|
||||
|
||||
function Shifts_by_room($room) {
|
||||
function Shifts_by_room($room)
|
||||
{
|
||||
$result = sql_select("SELECT * FROM `Shifts` WHERE `RID`=" . sql_escape($room['RID']) . " ORDER BY `start`");
|
||||
if ($result === false) {
|
||||
engelsystem_error("Unable to load shifts.");
|
||||
|
@ -10,7 +11,8 @@ function Shifts_by_room($room) {
|
|||
return $result;
|
||||
}
|
||||
|
||||
function Shifts_by_ShiftsFilter(ShiftsFilter $shiftsFilter) {
|
||||
function Shifts_by_ShiftsFilter(ShiftsFilter $shiftsFilter)
|
||||
{
|
||||
$SQL = "SELECT * FROM (
|
||||
SELECT DISTINCT `Shifts`.*, `ShiftTypes`.`name`, `Room`.`Name` as `room_name`
|
||||
FROM `Shifts`
|
||||
|
@ -44,7 +46,8 @@ function Shifts_by_ShiftsFilter(ShiftsFilter $shiftsFilter) {
|
|||
return $result;
|
||||
}
|
||||
|
||||
function NeededAngeltypes_by_ShiftsFilter(ShiftsFilter $shiftsFilter) {
|
||||
function NeededAngeltypes_by_ShiftsFilter(ShiftsFilter $shiftsFilter)
|
||||
{
|
||||
$SQL = "SELECT `NeededAngelTypes`.*, `Shifts`.`SID`, `AngelTypes`.`id`, `AngelTypes`.`name`, `AngelTypes`.`restricted`, `AngelTypes`.`no_self_signup`
|
||||
FROM `Shifts`
|
||||
JOIN `NeededAngelTypes` ON `NeededAngelTypes`.`shift_id`=`Shifts`.`SID`
|
||||
|
@ -69,7 +72,8 @@ function NeededAngeltypes_by_ShiftsFilter(ShiftsFilter $shiftsFilter) {
|
|||
return $result;
|
||||
}
|
||||
|
||||
function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype) {
|
||||
function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype)
|
||||
{
|
||||
$result = sql_select("SELECT `NeededAngelTypes`.*, `Shifts`.`SID`, `AngelTypes`.`id`, `AngelTypes`.`name`, `AngelTypes`.`restricted`, `AngelTypes`.`no_self_signup`
|
||||
FROM `Shifts`
|
||||
JOIN `NeededAngelTypes` ON `NeededAngelTypes`.`shift_id`=`Shifts`.`SID`
|
||||
|
@ -96,7 +100,8 @@ function NeededAngeltype_by_Shift_and_Angeltype($shift, $angeltype) {
|
|||
return $result[0];
|
||||
}
|
||||
|
||||
function ShiftEntries_by_ShiftsFilter(ShiftsFilter $shiftsFilter) {
|
||||
function ShiftEntries_by_ShiftsFilter(ShiftsFilter $shiftsFilter)
|
||||
{
|
||||
$SQL = "SELECT `User`.`Nick`, `User`.`email`, `User`.`email_shiftinfo`, `User`.`Sprache`, `User`.`Gekommen`, `ShiftEntry`.`UID`, `ShiftEntry`.`TID`, `ShiftEntry`.`SID`, `ShiftEntry`.`Comment`, `ShiftEntry`.`freeloaded`
|
||||
FROM `Shifts`
|
||||
JOIN `ShiftEntry` ON `ShiftEntry`.`SID`=`Shifts`.`SID`
|
||||
|
@ -117,7 +122,8 @@ function ShiftEntries_by_ShiftsFilter(ShiftsFilter $shiftsFilter) {
|
|||
* @param Shift $shift
|
||||
* @param array<Shift> $shifts
|
||||
*/
|
||||
function Shift_collides($shift, $shifts) {
|
||||
function Shift_collides($shift, $shifts)
|
||||
{
|
||||
foreach ($shifts as $other_shift) {
|
||||
if ($shift['SID'] != $other_shift['SID']) {
|
||||
if (! ($shift['start'] >= $other_shift['end'] || $shift['end'] <= $other_shift['start'])) {
|
||||
|
@ -131,7 +137,8 @@ function Shift_collides($shift, $shifts) {
|
|||
/**
|
||||
* Returns the number of needed angels/free shift entries for an angeltype.
|
||||
*/
|
||||
function Shift_free_entries($needed_angeltype, $shift_entries) {
|
||||
function Shift_free_entries($needed_angeltype, $shift_entries)
|
||||
{
|
||||
$taken = 0;
|
||||
foreach ($shift_entries as $shift_entry) {
|
||||
if ($shift_entry['freeloaded'] == 0) {
|
||||
|
@ -153,7 +160,8 @@ function Shift_free_entries($needed_angeltype, $shift_entries) {
|
|||
* @param boolean $angeltype_supporter
|
||||
* True, if the user has angeltype supporter rights for the angeltype, which enables him to sign somebody up for the shift.
|
||||
*/
|
||||
function Shift_signup_allowed_angel($user, $shift, $angeltype, $user_angeltype, $user_shifts, $needed_angeltype, $shift_entries) {
|
||||
function Shift_signup_allowed_angel($user, $shift, $angeltype, $user_angeltype, $user_shifts, $needed_angeltype, $shift_entries)
|
||||
{
|
||||
$free_entries = Shift_free_entries($needed_angeltype, $shift_entries);
|
||||
|
||||
if ($user['Gekommen'] == 0) {
|
||||
|
@ -210,7 +218,8 @@ function Shift_signup_allowed_angel($user, $shift, $angeltype, $user_angeltype,
|
|||
/**
|
||||
* Check if an angeltype supporter can sign up a user to a shift.
|
||||
*/
|
||||
function Shift_signup_allowed_angeltype_supporter($angeltype, $needed_angeltype, $shift_entries) {
|
||||
function Shift_signup_allowed_angeltype_supporter($angeltype, $needed_angeltype, $shift_entries)
|
||||
{
|
||||
$free_entries = Shift_free_entries($needed_angeltype, $shift_entries);
|
||||
if ($free_entries == 0) {
|
||||
return new ShiftSignupState(ShiftSignupState::OCCUPIED, $free_entries);
|
||||
|
@ -227,7 +236,8 @@ function Shift_signup_allowed_angeltype_supporter($angeltype, $needed_angeltype,
|
|||
* @param AngelType $angeltype
|
||||
* The angeltype to which the user wants to sign up
|
||||
*/
|
||||
function Shift_signup_allowed_admin($angeltype, $needed_angeltype, $shift_entries) {
|
||||
function Shift_signup_allowed_admin($angeltype, $needed_angeltype, $shift_entries)
|
||||
{
|
||||
$free_entries = Shift_free_entries($needed_angeltype, $shift_entries);
|
||||
|
||||
if ($free_entries == 0) {
|
||||
|
@ -248,7 +258,8 @@ function Shift_signup_allowed_admin($angeltype, $needed_angeltype, $shift_entrie
|
|||
* @param array<Shift> $user_shifts
|
||||
* List of the users shifts
|
||||
*/
|
||||
function Shift_signup_allowed($signup_user, $shift, $angeltype, $user_angeltype = null, $user_shifts = null, $needed_angeltype, $shift_entries) {
|
||||
function Shift_signup_allowed($signup_user, $shift, $angeltype, $user_angeltype = null, $user_shifts = null, $needed_angeltype, $shift_entries)
|
||||
{
|
||||
global $user, $privileges;
|
||||
|
||||
if (in_array('user_shifts_admin', $privileges)) {
|
||||
|
@ -265,14 +276,16 @@ function Shift_signup_allowed($signup_user, $shift, $angeltype, $user_angeltype
|
|||
/**
|
||||
* Delete a shift by its external id.
|
||||
*/
|
||||
function Shift_delete_by_psid($shift_psid) {
|
||||
function Shift_delete_by_psid($shift_psid)
|
||||
{
|
||||
return sql_query("DELETE FROM `Shifts` WHERE `PSID`='" . sql_escape($shift_psid) . "'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a shift.
|
||||
*/
|
||||
function Shift_delete($shift_id) {
|
||||
function Shift_delete($shift_id)
|
||||
{
|
||||
mail_shift_delete(Shift($shift_id));
|
||||
|
||||
$result = sql_query("DELETE FROM `Shifts` WHERE `SID`='" . sql_escape($shift_id) . "'");
|
||||
|
@ -285,7 +298,8 @@ function Shift_delete($shift_id) {
|
|||
/**
|
||||
* Update a shift.
|
||||
*/
|
||||
function Shift_update($shift) {
|
||||
function Shift_update($shift)
|
||||
{
|
||||
global $user;
|
||||
$shift['name'] = ShiftType($shift['shifttype_id'])['name'];
|
||||
mail_shift_change(Shift($shift['SID']), $shift);
|
||||
|
@ -306,7 +320,8 @@ function Shift_update($shift) {
|
|||
/**
|
||||
* Update a shift by its external id.
|
||||
*/
|
||||
function Shift_update_by_psid($shift) {
|
||||
function Shift_update_by_psid($shift)
|
||||
{
|
||||
$shift_source = sql_select("SELECT `SID` FROM `Shifts` WHERE `PSID`=" . $shift['PSID']);
|
||||
if ($shift_source === false) {
|
||||
return false;
|
||||
|
@ -323,7 +338,8 @@ function Shift_update_by_psid($shift) {
|
|||
*
|
||||
* @return new shift id or false
|
||||
*/
|
||||
function Shift_create($shift) {
|
||||
function Shift_create($shift)
|
||||
{
|
||||
global $user;
|
||||
$result = sql_query("INSERT INTO `Shifts` SET
|
||||
`shifttype_id`='" . sql_escape($shift['shifttype_id']) . "',
|
||||
|
@ -344,7 +360,8 @@ function Shift_create($shift) {
|
|||
/**
|
||||
* Return users shifts.
|
||||
*/
|
||||
function Shifts_by_user($user, $include_freeload_comments = false) {
|
||||
function Shifts_by_user($user, $include_freeload_comments = false)
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT `ShiftTypes`.`id` as `shifttype_id`, `ShiftTypes`.`name`,
|
||||
`ShiftEntry`.`id`, `ShiftEntry`.`SID`, `ShiftEntry`.`TID`, `ShiftEntry`.`UID`, `ShiftEntry`.`freeloaded`, `ShiftEntry`.`Comment`,
|
||||
|
@ -369,7 +386,8 @@ function Shifts_by_user($user, $include_freeload_comments = false) {
|
|||
* @param $shift_id Shift
|
||||
* ID
|
||||
*/
|
||||
function Shift($shift_id) {
|
||||
function Shift($shift_id)
|
||||
{
|
||||
$shifts_source = sql_select("
|
||||
SELECT `Shifts`.*, `ShiftTypes`.`name`
|
||||
FROM `Shifts`
|
||||
|
@ -406,7 +424,8 @@ function Shift($shift_id) {
|
|||
/**
|
||||
* Returns all shifts with needed angeltypes and count of subscribed jobs.
|
||||
*/
|
||||
function Shifts() {
|
||||
function Shifts()
|
||||
{
|
||||
$shifts_source = sql_select("
|
||||
SELECT `ShiftTypes`.`name`, `Shifts`.*, `Room`.`RID`, `Room`.`Name` as `room_name`
|
||||
FROM `Shifts`
|
||||
|
@ -428,5 +447,3 @@ function Shifts() {
|
|||
|
||||
return $shifts_source;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
* The angeltype to be checked
|
||||
* @return boolean
|
||||
*/
|
||||
function UserAngelType_exists($user, $angeltype) {
|
||||
function UserAngelType_exists($user, $angeltype)
|
||||
{
|
||||
return sql_num_query("
|
||||
SELECT `id`
|
||||
FROM `UserAngelTypes`
|
||||
|
@ -27,7 +28,8 @@ function UserAngelType_exists($user, $angeltype) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function User_angeltypes($user) {
|
||||
function User_angeltypes($user)
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT `AngelTypes`.*, `UserAngelTypes`.`confirm_user_id`, `UserAngelTypes`.`supporter`
|
||||
FROM `UserAngelTypes`
|
||||
|
@ -46,7 +48,8 @@ function User_angeltypes($user) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function User_unconfirmed_AngelTypes($user) {
|
||||
function User_unconfirmed_AngelTypes($user)
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT
|
||||
`UserAngelTypes`.*,
|
||||
|
@ -73,8 +76,9 @@ function User_unconfirmed_AngelTypes($user) {
|
|||
* @param User $user
|
||||
* @param AngelType $angeltype
|
||||
*/
|
||||
function User_is_AngelType_supporter(&$user, $angeltype) {
|
||||
if(!isset($user['privileges'])) {
|
||||
function User_is_AngelType_supporter(&$user, $angeltype)
|
||||
{
|
||||
if (!isset($user['privileges'])) {
|
||||
$user['privileges'] = privileges_for_user($user['UID']);
|
||||
}
|
||||
return (sql_num_query("
|
||||
|
@ -92,7 +96,8 @@ function User_is_AngelType_supporter(&$user, $angeltype) {
|
|||
* @param int $user_angeltype_id
|
||||
* @param bool $supporter
|
||||
*/
|
||||
function UserAngelType_update($user_angeltype_id, $supporter) {
|
||||
function UserAngelType_update($user_angeltype_id, $supporter)
|
||||
{
|
||||
$result = sql_query("
|
||||
UPDATE `UserAngelTypes`
|
||||
SET `supporter`=" . sql_bool($supporter) . "
|
||||
|
@ -109,7 +114,8 @@ function UserAngelType_update($user_angeltype_id, $supporter) {
|
|||
*
|
||||
* @param int $angeltype_id
|
||||
*/
|
||||
function UserAngelTypes_delete_all($angeltype_id) {
|
||||
function UserAngelTypes_delete_all($angeltype_id)
|
||||
{
|
||||
$result = sql_query("
|
||||
DELETE FROM `UserAngelTypes`
|
||||
WHERE `angeltype_id`='" . sql_escape($angeltype_id) . "'
|
||||
|
@ -126,7 +132,8 @@ function UserAngelTypes_delete_all($angeltype_id) {
|
|||
* @param int $angeltype_id
|
||||
* @param User $confirm_user
|
||||
*/
|
||||
function UserAngelTypes_confirm_all($angeltype_id, $confirm_user) {
|
||||
function UserAngelTypes_confirm_all($angeltype_id, $confirm_user)
|
||||
{
|
||||
$result = sql_query("
|
||||
UPDATE `UserAngelTypes`
|
||||
SET `confirm_user_id`='" . sql_escape($confirm_user['UID']) . "'
|
||||
|
@ -144,7 +151,8 @@ function UserAngelTypes_confirm_all($angeltype_id, $confirm_user) {
|
|||
* @param int $user_angeltype_id
|
||||
* @param User $confirm_user
|
||||
*/
|
||||
function UserAngelType_confirm($user_angeltype_id, $confirm_user) {
|
||||
function UserAngelType_confirm($user_angeltype_id, $confirm_user)
|
||||
{
|
||||
$result = sql_query("
|
||||
UPDATE `UserAngelTypes`
|
||||
SET `confirm_user_id`='" . sql_escape($confirm_user['UID']) . "'
|
||||
|
@ -161,7 +169,8 @@ function UserAngelType_confirm($user_angeltype_id, $confirm_user) {
|
|||
*
|
||||
* @param UserAngelType $user_angeltype
|
||||
*/
|
||||
function UserAngelType_delete($user_angeltype) {
|
||||
function UserAngelType_delete($user_angeltype)
|
||||
{
|
||||
return sql_query("
|
||||
DELETE FROM `UserAngelTypes`
|
||||
WHERE `id`='" . sql_escape($user_angeltype['id']) . "'
|
||||
|
@ -174,7 +183,8 @@ function UserAngelType_delete($user_angeltype) {
|
|||
* @param User $user
|
||||
* @param Angeltype $angeltype
|
||||
*/
|
||||
function UserAngelType_create($user, $angeltype) {
|
||||
function UserAngelType_create($user, $angeltype)
|
||||
{
|
||||
$result = sql_query("
|
||||
INSERT INTO `UserAngelTypes` SET
|
||||
`user_id`='" . sql_escape($user['UID']) . "',
|
||||
|
@ -190,7 +200,8 @@ function UserAngelType_create($user, $angeltype) {
|
|||
*
|
||||
* @param int $user_angeltype_id
|
||||
*/
|
||||
function UserAngelType($user_angeltype_id) {
|
||||
function UserAngelType($user_angeltype_id)
|
||||
{
|
||||
$angeltype = sql_select("
|
||||
SELECT *
|
||||
FROM `UserAngelTypes`
|
||||
|
@ -211,7 +222,8 @@ function UserAngelType($user_angeltype_id) {
|
|||
* @param User $user
|
||||
* @param Angeltype $angeltype
|
||||
*/
|
||||
function UserAngelType_by_User_and_AngelType($user, $angeltype) {
|
||||
function UserAngelType_by_User_and_AngelType($user, $angeltype)
|
||||
{
|
||||
$angeltype = sql_select("
|
||||
SELECT *
|
||||
FROM `UserAngelTypes`
|
||||
|
@ -226,4 +238,3 @@ function UserAngelType_by_User_and_AngelType($user, $angeltype) {
|
|||
}
|
||||
return $angeltype[0];
|
||||
}
|
||||
?>
|
|
@ -4,7 +4,8 @@
|
|||
* Returns a new empty UserDriverLicense
|
||||
* FIXME entity object needed
|
||||
*/
|
||||
function UserDriverLicense_new() {
|
||||
function UserDriverLicense_new()
|
||||
{
|
||||
return [
|
||||
'user_id' => null,
|
||||
'has_car' => false,
|
||||
|
@ -23,7 +24,8 @@ function UserDriverLicense_new() {
|
|||
* The UserDriverLicense to check
|
||||
* @return boolean
|
||||
*/
|
||||
function UserDriverLicense_valid($user_driver_license) {
|
||||
function UserDriverLicense_valid($user_driver_license)
|
||||
{
|
||||
return $user_driver_license['has_car'] || $user_driver_license['has_license_car'] || $user_driver_license['has_license_3_5t_transporter'] || $user_driver_license['has_license_7_5t_truck'] || $user_driver_license['has_license_12_5t_truck'] || $user_driver_license['has_license_forklift'];
|
||||
}
|
||||
|
||||
|
@ -33,7 +35,8 @@ function UserDriverLicense_valid($user_driver_license) {
|
|||
* @param int $user_id
|
||||
* The users id
|
||||
*/
|
||||
function UserDriverLicense($user_id) {
|
||||
function UserDriverLicense($user_id)
|
||||
{
|
||||
$user_driver_license = sql_select("SELECT * FROM `UserDriverLicenses` WHERE `user_id`='" . sql_escape($user_id) . "'");
|
||||
if ($user_driver_license === false) {
|
||||
engelsystem_error('Unable to load user driver license.');
|
||||
|
@ -51,7 +54,8 @@ function UserDriverLicense($user_id) {
|
|||
* @param UserDriverLicense $user_driver_license
|
||||
* The UserDriverLicense to create
|
||||
*/
|
||||
function UserDriverLicenses_create($user_driver_license, $user) {
|
||||
function UserDriverLicenses_create($user_driver_license, $user)
|
||||
{
|
||||
$user_driver_license['user_id'] = $user['UID'];
|
||||
$result = sql_query("
|
||||
INSERT INTO `UserDriverLicenses` SET
|
||||
|
@ -74,7 +78,8 @@ function UserDriverLicenses_create($user_driver_license, $user) {
|
|||
* @param UserDriverLicense $user_driver_license
|
||||
* The UserDriverLicense to update
|
||||
*/
|
||||
function UserDriverLicenses_update($user_driver_license) {
|
||||
function UserDriverLicenses_update($user_driver_license)
|
||||
{
|
||||
$result = sql_query("UPDATE `UserDriverLicenses` SET
|
||||
`has_car`=" . sql_bool($user_driver_license['has_car']) . ",
|
||||
`has_license_car`=" . sql_bool($user_driver_license['has_license_car']) . ",
|
||||
|
@ -94,11 +99,11 @@ function UserDriverLicenses_update($user_driver_license) {
|
|||
*
|
||||
* @param int $user_id
|
||||
*/
|
||||
function UserDriverLicenses_delete($user_id) {
|
||||
function UserDriverLicenses_delete($user_id)
|
||||
{
|
||||
$result = sql_query("DELETE FROM `UserDriverLicenses` WHERE `user_id`=" . sql_escape($user_id));
|
||||
if ($result === false) {
|
||||
engelsystem_error("Unable to remove user driver license information");
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
?>
|
|
@ -4,7 +4,8 @@
|
|||
* Returns users groups
|
||||
* @param User $user
|
||||
*/
|
||||
function User_groups($user) {
|
||||
function User_groups($user)
|
||||
{
|
||||
return sql_select("
|
||||
SELECT `Groups`.*
|
||||
FROM `UserGroups`
|
||||
|
@ -13,5 +14,3 @@ function User_groups($user) {
|
|||
ORDER BY `UserGroups`.`group_id`
|
||||
");
|
||||
}
|
||||
|
||||
?>
|
|
@ -10,7 +10,8 @@ use Engelsystem\ValidationResult;
|
|||
*
|
||||
* @param int $user_id
|
||||
*/
|
||||
function User_delete($user_id) {
|
||||
function User_delete($user_id)
|
||||
{
|
||||
return sql_query("DELETE FROM `User` WHERE `UID`='" . sql_escape($user_id) . "'");
|
||||
}
|
||||
|
||||
|
@ -19,7 +20,8 @@ function User_delete($user_id) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function User_update($user) {
|
||||
function User_update($user)
|
||||
{
|
||||
return sql_query("UPDATE `User` SET
|
||||
`Nick`='" . sql_escape($user['Nick']) . "',
|
||||
`Name`='" . sql_escape($user['Name']) . "',
|
||||
|
@ -50,30 +52,36 @@ function User_update($user) {
|
|||
/**
|
||||
* Counts all forced active users.
|
||||
*/
|
||||
function User_force_active_count() {
|
||||
function User_force_active_count()
|
||||
{
|
||||
return sql_select_single_cell("SELECT COUNT(*) FROM `User` WHERE `force_active` = 1");
|
||||
}
|
||||
|
||||
function User_active_count() {
|
||||
function User_active_count()
|
||||
{
|
||||
return sql_select_single_cell("SELECT COUNT(*) FROM `User` WHERE `Aktiv` = 1");
|
||||
}
|
||||
|
||||
function User_got_voucher_count() {
|
||||
function User_got_voucher_count()
|
||||
{
|
||||
return sql_select_single_cell("SELECT SUM(`got_voucher`) FROM `User`");
|
||||
}
|
||||
|
||||
function User_arrived_count() {
|
||||
function User_arrived_count()
|
||||
{
|
||||
return sql_select_single_cell("SELECT COUNT(*) FROM `User` WHERE `Gekommen` = 1");
|
||||
}
|
||||
|
||||
function User_tshirts_count() {
|
||||
function User_tshirts_count()
|
||||
{
|
||||
return sql_select_single_cell("SELECT COUNT(*) FROM `User` WHERE `Tshirt` = 1");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all column names for sorting in an array.
|
||||
*/
|
||||
function User_sortable_columns() {
|
||||
function User_sortable_columns()
|
||||
{
|
||||
return [
|
||||
'Nick',
|
||||
'Name',
|
||||
|
@ -95,7 +103,8 @@ function User_sortable_columns() {
|
|||
*
|
||||
* @param string $order_by
|
||||
*/
|
||||
function Users($order_by = 'Nick') {
|
||||
function Users($order_by = 'Nick')
|
||||
{
|
||||
return sql_select("SELECT * FROM `User` ORDER BY `" . sql_escape($order_by) . "` ASC");
|
||||
}
|
||||
|
||||
|
@ -104,7 +113,8 @@ function Users($order_by = 'Nick') {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function User_is_freeloader($user) {
|
||||
function User_is_freeloader($user)
|
||||
{
|
||||
global $max_freeloadable_shifts, $user;
|
||||
|
||||
return count(ShiftEntries_freeloaded_by_user($user)) >= $max_freeloadable_shifts;
|
||||
|
@ -115,7 +125,8 @@ function User_is_freeloader($user) {
|
|||
*
|
||||
* @param Angeltype $angeltype
|
||||
*/
|
||||
function Users_by_angeltype_inverted($angeltype) {
|
||||
function Users_by_angeltype_inverted($angeltype)
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT `User`.*
|
||||
FROM `User`
|
||||
|
@ -133,7 +144,8 @@ function Users_by_angeltype_inverted($angeltype) {
|
|||
*
|
||||
* @param Angeltype $angeltype
|
||||
*/
|
||||
function Users_by_angeltype($angeltype) {
|
||||
function Users_by_angeltype($angeltype)
|
||||
{
|
||||
$result = sql_select("
|
||||
SELECT
|
||||
`User`.*,
|
||||
|
@ -155,7 +167,8 @@ function Users_by_angeltype($angeltype) {
|
|||
/**
|
||||
* Returns User id array
|
||||
*/
|
||||
function User_ids() {
|
||||
function User_ids()
|
||||
{
|
||||
return sql_select("SELECT `UID` FROM `User`");
|
||||
}
|
||||
|
||||
|
@ -164,7 +177,8 @@ function User_ids() {
|
|||
*
|
||||
* @param string $nick
|
||||
*/
|
||||
function User_validate_Nick($nick) {
|
||||
function User_validate_Nick($nick)
|
||||
{
|
||||
return preg_replace("/([^a-z0-9üöäß. _+*-]{1,})/ui", '', $nick);
|
||||
}
|
||||
|
||||
|
@ -175,7 +189,8 @@ function User_validate_Nick($nick) {
|
|||
* The email address to validate
|
||||
* @return ValidationResult
|
||||
*/
|
||||
function User_validate_mail($mail) {
|
||||
function User_validate_mail($mail)
|
||||
{
|
||||
$mail = strip_item($mail);
|
||||
return new ValidationResult(check_email($mail), $mail);
|
||||
}
|
||||
|
@ -187,7 +202,8 @@ function User_validate_mail($mail) {
|
|||
* Jabber-ID to validate
|
||||
* @return ValidationResult
|
||||
*/
|
||||
function User_validate_jabber($jabber) {
|
||||
function User_validate_jabber($jabber)
|
||||
{
|
||||
$jabber = strip_item($jabber);
|
||||
if ($jabber == '') {
|
||||
// Empty is ok
|
||||
|
@ -203,7 +219,8 @@ function User_validate_jabber($jabber) {
|
|||
* Unix timestamp
|
||||
* @return ValidationResult
|
||||
*/
|
||||
function User_validate_planned_arrival_date($planned_arrival_date) {
|
||||
function User_validate_planned_arrival_date($planned_arrival_date)
|
||||
{
|
||||
if ($planned_arrival_date == null) {
|
||||
// null is not okay
|
||||
return new ValidationResult(false, time());
|
||||
|
@ -233,7 +250,8 @@ function User_validate_planned_arrival_date($planned_arrival_date) {
|
|||
* Unix timestamp
|
||||
* @return ValidationResult
|
||||
*/
|
||||
function User_validate_planned_departure_date($planned_arrival_date, $planned_departure_date) {
|
||||
function User_validate_planned_departure_date($planned_arrival_date, $planned_departure_date)
|
||||
{
|
||||
if ($planned_departure_date == null) {
|
||||
// null is okay
|
||||
return new ValidationResult(true, null);
|
||||
|
@ -263,7 +281,8 @@ function User_validate_planned_departure_date($planned_arrival_date, $planned_de
|
|||
*
|
||||
* @param $user_id UID
|
||||
*/
|
||||
function User($user_id) {
|
||||
function User($user_id)
|
||||
{
|
||||
$user_source = sql_select("SELECT * FROM `User` WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1");
|
||||
if ($user_source === false) {
|
||||
engelsystem_error("Unable to load user.");
|
||||
|
@ -281,7 +300,8 @@ function User($user_id) {
|
|||
* User api key
|
||||
* @return Matching user, null or false on error
|
||||
*/
|
||||
function User_by_api_key($api_key) {
|
||||
function User_by_api_key($api_key)
|
||||
{
|
||||
$user = sql_select("SELECT * FROM `User` WHERE `api_key`='" . sql_escape($api_key) . "' LIMIT 1");
|
||||
if ($user === false) {
|
||||
engelsystem_error("Unable to find user by api key.");
|
||||
|
@ -298,7 +318,8 @@ function User_by_api_key($api_key) {
|
|||
* @param string $email
|
||||
* @return Matching user, null or false on error
|
||||
*/
|
||||
function User_by_email($email) {
|
||||
function User_by_email($email)
|
||||
{
|
||||
$user = sql_select("SELECT * FROM `User` WHERE `email`='" . sql_escape($email) . "' LIMIT 1");
|
||||
if ($user === false) {
|
||||
engelsystem_error("Unable to load user.");
|
||||
|
@ -315,7 +336,8 @@ function User_by_email($email) {
|
|||
* @param string $token
|
||||
* @return Matching user, null or false on error
|
||||
*/
|
||||
function User_by_password_recovery_token($token) {
|
||||
function User_by_password_recovery_token($token)
|
||||
{
|
||||
$user = sql_select("SELECT * FROM `User` WHERE `password_recovery_token`='" . sql_escape($token) . "' LIMIT 1");
|
||||
if ($user === false) {
|
||||
engelsystem_error("Unable to load user.");
|
||||
|
@ -331,7 +353,8 @@ function User_by_password_recovery_token($token) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function User_reset_api_key(&$user, $log = true) {
|
||||
function User_reset_api_key(&$user, $log = true)
|
||||
{
|
||||
$user['api_key'] = md5($user['Nick'] . time() . rand());
|
||||
$result = sql_query("UPDATE `User` SET `api_key`='" . sql_escape($user['api_key']) . "' WHERE `UID`='" . sql_escape($user['UID']) . "' LIMIT 1");
|
||||
if ($result === false) {
|
||||
|
@ -347,7 +370,8 @@ function User_reset_api_key(&$user, $log = true) {
|
|||
*
|
||||
* @param User $user
|
||||
*/
|
||||
function User_generate_password_recovery_token(&$user) {
|
||||
function User_generate_password_recovery_token(&$user)
|
||||
{
|
||||
$user['password_recovery_token'] = md5($user['Nick'] . time() . rand());
|
||||
$result = sql_query("UPDATE `User` SET `password_recovery_token`='" . sql_escape($user['password_recovery_token']) . "' WHERE `UID`='" . sql_escape($user['UID']) . "' LIMIT 1");
|
||||
if ($result === false) {
|
||||
|
@ -357,7 +381,8 @@ function User_generate_password_recovery_token(&$user) {
|
|||
return $user['password_recovery_token'];
|
||||
}
|
||||
|
||||
function User_get_eligable_voucher_count(&$user) {
|
||||
function User_get_eligable_voucher_count(&$user)
|
||||
{
|
||||
global $voucher_settings;
|
||||
|
||||
$shifts_done = count(ShiftEntries_finished_by_user($user));
|
||||
|
@ -370,5 +395,3 @@ function User_get_eligable_voucher_count(&$user) {
|
|||
|
||||
return $elegible_vouchers;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -6,8 +6,8 @@ namespace Engelsystem;
|
|||
* BO that represents the result of an entity attribute validation.
|
||||
* It contains the validated value and a bool for validation success.
|
||||
*/
|
||||
class ValidationResult {
|
||||
|
||||
class ValidationResult
|
||||
{
|
||||
private $valid;
|
||||
|
||||
private $value;
|
||||
|
@ -20,7 +20,8 @@ class ValidationResult {
|
|||
* @param * $value
|
||||
* The validated value
|
||||
*/
|
||||
public function __construct($valid, $value) {
|
||||
public function __construct($valid, $value)
|
||||
{
|
||||
$this->valid = $valid;
|
||||
$this->value = $value;
|
||||
}
|
||||
|
@ -28,15 +29,16 @@ class ValidationResult {
|
|||
/**
|
||||
* Is the value valid?
|
||||
*/
|
||||
public function isValid() {
|
||||
public function isValid()
|
||||
{
|
||||
return $this->valid;
|
||||
}
|
||||
|
||||
/**
|
||||
* The parsed/validated value.
|
||||
*/
|
||||
public function getValue() {
|
||||
public function getValue()
|
||||
{
|
||||
return $this->value;
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Close connection.
|
||||
*/
|
||||
function sql_close() {
|
||||
function sql_close()
|
||||
{
|
||||
global $sql_connection;
|
||||
|
||||
return $sql_connection->close();
|
||||
|
@ -12,14 +13,16 @@ function sql_close() {
|
|||
/**
|
||||
* Return NULL if given value is null.
|
||||
*/
|
||||
function sql_null($value = null) {
|
||||
function sql_null($value = null)
|
||||
{
|
||||
return $value == null ? 'NULL' : ("'" . sql_escape($value) . "'");
|
||||
}
|
||||
|
||||
/**
|
||||
* Start new transaction.
|
||||
*/
|
||||
function sql_transaction_start() {
|
||||
function sql_transaction_start()
|
||||
{
|
||||
global $sql_nested_transaction_level;
|
||||
|
||||
if ($sql_nested_transaction_level ++ == 0) {
|
||||
|
@ -32,7 +35,8 @@ function sql_transaction_start() {
|
|||
/**
|
||||
* Commit transaction.
|
||||
*/
|
||||
function sql_transaction_commit() {
|
||||
function sql_transaction_commit()
|
||||
{
|
||||
global $sql_nested_transaction_level;
|
||||
|
||||
if (-- $sql_nested_transaction_level == 0) {
|
||||
|
@ -45,7 +49,8 @@ function sql_transaction_commit() {
|
|||
/**
|
||||
* Stop transaction, revert database.
|
||||
*/
|
||||
function sql_transaction_rollback() {
|
||||
function sql_transaction_rollback()
|
||||
{
|
||||
global $sql_nested_transaction_level;
|
||||
|
||||
if (-- $sql_nested_transaction_level == 0) {
|
||||
|
@ -61,7 +66,8 @@ function sql_transaction_rollback() {
|
|||
* @param string $message
|
||||
* @return false
|
||||
*/
|
||||
function sql_error($message) {
|
||||
function sql_error($message)
|
||||
{
|
||||
sql_close();
|
||||
|
||||
$message = trim($message) . "\n";
|
||||
|
@ -85,7 +91,8 @@ function sql_error($message) {
|
|||
* DB to select
|
||||
* @return mysqli The connection handler
|
||||
*/
|
||||
function sql_connect($host, $user, $pass, $db_name) {
|
||||
function sql_connect($host, $user, $pass, $db_name)
|
||||
{
|
||||
global $sql_connection;
|
||||
|
||||
$sql_connection = new mysqli($host, $user, $pass, $db_name);
|
||||
|
@ -114,7 +121,8 @@ function sql_connect($host, $user, $pass, $db_name) {
|
|||
* $db_name
|
||||
* @return bool true on success, false on error
|
||||
*/
|
||||
function sql_select_db($db_name) {
|
||||
function sql_select_db($db_name)
|
||||
{
|
||||
global $sql_connection;
|
||||
if (! $sql_connection->select_db($db_name)) {
|
||||
return sql_error("No database selected.");
|
||||
|
@ -128,7 +136,8 @@ function sql_select_db($db_name) {
|
|||
* @param string $query
|
||||
* @return Result array or false on error
|
||||
*/
|
||||
function sql_select($query) {
|
||||
function sql_select($query)
|
||||
{
|
||||
global $sql_connection;
|
||||
|
||||
// echo $query . ";\n";
|
||||
|
@ -152,7 +161,8 @@ function sql_select($query) {
|
|||
* @param string $query
|
||||
* @return mysqli_result boolean resource or false on error
|
||||
*/
|
||||
function sql_query($query) {
|
||||
function sql_query($query)
|
||||
{
|
||||
global $sql_connection;
|
||||
|
||||
$result = $sql_connection->query($query);
|
||||
|
@ -168,7 +178,8 @@ function sql_query($query) {
|
|||
*
|
||||
* @return int
|
||||
*/
|
||||
function sql_id() {
|
||||
function sql_id()
|
||||
{
|
||||
global $sql_connection;
|
||||
return $sql_connection->insert_id;
|
||||
}
|
||||
|
@ -179,7 +190,8 @@ function sql_id() {
|
|||
* @param string $query
|
||||
* @return string
|
||||
*/
|
||||
function sql_escape($query) {
|
||||
function sql_escape($query)
|
||||
{
|
||||
global $sql_connection;
|
||||
return $sql_connection->real_escape_string($query);
|
||||
}
|
||||
|
@ -190,7 +202,8 @@ function sql_escape($query) {
|
|||
* @param boolean $boolean
|
||||
* @return string
|
||||
*/
|
||||
function sql_bool($boolean) {
|
||||
function sql_bool($boolean)
|
||||
{
|
||||
return $boolean == true ? 'TRUE' : 'FALSE';
|
||||
}
|
||||
|
||||
|
@ -200,17 +213,18 @@ function sql_bool($boolean) {
|
|||
* @param string $query
|
||||
* @return int Count of result lines
|
||||
*/
|
||||
function sql_num_query($query) {
|
||||
function sql_num_query($query)
|
||||
{
|
||||
return sql_query($query)->num_rows;
|
||||
}
|
||||
|
||||
function sql_select_single_col($query) {
|
||||
function sql_select_single_col($query)
|
||||
{
|
||||
$result = sql_select($query);
|
||||
return array_map('array_shift', $result);
|
||||
}
|
||||
|
||||
function sql_select_single_cell($query) {
|
||||
function sql_select_single_cell($query)
|
||||
{
|
||||
return array_shift(array_shift(sql_select($query)));
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_active_title() {
|
||||
function admin_active_title()
|
||||
{
|
||||
return _("Active angels");
|
||||
}
|
||||
|
||||
function admin_active() {
|
||||
function admin_active()
|
||||
{
|
||||
global $tshirt_sizes, $shift_sum_formula;
|
||||
|
||||
$msg = "";
|
||||
|
@ -199,4 +201,3 @@ function admin_active() {
|
|||
], $shirt_statistics)
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_arrive_title() {
|
||||
function admin_arrive_title()
|
||||
{
|
||||
return _("Arrived angels");
|
||||
}
|
||||
|
||||
function admin_arrive() {
|
||||
function admin_arrive()
|
||||
{
|
||||
$msg = "";
|
||||
$search = "";
|
||||
if (isset($_REQUEST['search'])) {
|
||||
|
@ -198,4 +200,3 @@ function admin_arrive() {
|
|||
])
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_free_title() {
|
||||
function admin_free_title()
|
||||
{
|
||||
return _("Free angels");
|
||||
}
|
||||
|
||||
function admin_free() {
|
||||
function admin_free()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
$search = "";
|
||||
|
@ -98,4 +100,3 @@ function admin_free() {
|
|||
], $free_users_table)
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_groups_title() {
|
||||
function admin_groups_title()
|
||||
{
|
||||
return _("Grouprights");
|
||||
}
|
||||
|
||||
function admin_groups() {
|
||||
function admin_groups()
|
||||
{
|
||||
$html = "";
|
||||
$groups = sql_select("SELECT * FROM `Groups` ORDER BY `Name`");
|
||||
if (! isset($_REQUEST["action"])) {
|
||||
|
@ -94,4 +96,3 @@ function admin_groups() {
|
|||
}
|
||||
return $html;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_import_title() {
|
||||
function admin_import_title()
|
||||
{
|
||||
return _("Frab import");
|
||||
}
|
||||
|
||||
function admin_import() {
|
||||
function admin_import()
|
||||
{
|
||||
global $rooms_import;
|
||||
global $user;
|
||||
$html = "";
|
||||
|
@ -263,7 +265,8 @@ function admin_import() {
|
|||
]);
|
||||
}
|
||||
|
||||
function prepare_rooms($file) {
|
||||
function prepare_rooms($file)
|
||||
{
|
||||
global $rooms_import;
|
||||
$data = read_xml($file);
|
||||
|
||||
|
@ -295,7 +298,8 @@ function prepare_rooms($file) {
|
|||
];
|
||||
}
|
||||
|
||||
function prepare_events($file, $shifttype_id, $add_minutes_start, $add_minutes_end) {
|
||||
function prepare_events($file, $shifttype_id, $add_minutes_start, $add_minutes_end)
|
||||
{
|
||||
global $rooms_import;
|
||||
$data = read_xml($file);
|
||||
|
||||
|
@ -355,7 +359,8 @@ function prepare_events($file, $shifttype_id, $add_minutes_start, $add_minutes_e
|
|||
];
|
||||
}
|
||||
|
||||
function read_xml($file) {
|
||||
function read_xml($file)
|
||||
{
|
||||
global $xml_import;
|
||||
if (! isset($xml_import)) {
|
||||
$xml_import = simplexml_load_file($file);
|
||||
|
@ -363,7 +368,8 @@ function read_xml($file) {
|
|||
return $xml_import;
|
||||
}
|
||||
|
||||
function shifts_printable($shifts, $shifttypes) {
|
||||
function shifts_printable($shifts, $shifttypes)
|
||||
{
|
||||
global $rooms_import;
|
||||
$rooms = array_flip($rooms_import);
|
||||
|
||||
|
@ -386,7 +392,7 @@ function shifts_printable($shifts, $shifttypes) {
|
|||
return $shifts_printable;
|
||||
}
|
||||
|
||||
function shift_sort($shift_a, $shift_b) {
|
||||
function shift_sort($shift_a, $shift_b)
|
||||
{
|
||||
return ($shift_a['start'] < $shift_b['start']) ? - 1 : 1;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_log_title() {
|
||||
function admin_log_title()
|
||||
{
|
||||
return _("Log");
|
||||
}
|
||||
|
||||
function admin_log() {
|
||||
function admin_log()
|
||||
{
|
||||
$filter = "";
|
||||
if (isset($_REQUEST['keyword'])) {
|
||||
$filter = strip_request_item('keyword');
|
||||
|
@ -30,4 +32,3 @@ function admin_log() {
|
|||
], $log_entries)
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function admin_news() {
|
||||
function admin_news()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_GET["action"])) {
|
||||
|
@ -64,4 +65,3 @@ function admin_news() {
|
|||
}
|
||||
return $html . '</div>';
|
||||
}
|
||||
?>
|
|
@ -1,13 +1,15 @@
|
|||
<?php
|
||||
|
||||
function admin_questions_title() {
|
||||
function admin_questions_title()
|
||||
{
|
||||
return _("Answer questions");
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders a hint for new questions to answer.
|
||||
*/
|
||||
function admin_new_questions() {
|
||||
function admin_new_questions()
|
||||
{
|
||||
global $privileges, $page;
|
||||
|
||||
if ($page != "admin_questions") {
|
||||
|
@ -23,7 +25,8 @@ function admin_new_questions() {
|
|||
return null;
|
||||
}
|
||||
|
||||
function admin_questions() {
|
||||
function admin_questions()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['action'])) {
|
||||
|
@ -117,4 +120,3 @@ function admin_questions() {
|
|||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_rooms_title() {
|
||||
function admin_rooms_title()
|
||||
{
|
||||
return _("Rooms");
|
||||
}
|
||||
|
||||
function admin_rooms() {
|
||||
function admin_rooms()
|
||||
{
|
||||
$rooms_source = sql_select("SELECT * FROM `Room` ORDER BY `Name`");
|
||||
$rooms = [];
|
||||
foreach ($rooms_source as $room) {
|
||||
|
@ -193,4 +195,3 @@ function admin_rooms() {
|
|||
], $rooms)
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
<?php
|
||||
|
||||
function admin_shifts_title() {
|
||||
function admin_shifts_title()
|
||||
{
|
||||
return _("Create shifts");
|
||||
}
|
||||
|
||||
// Assistent zum Anlegen mehrerer neuer Schichten
|
||||
function admin_shifts() {
|
||||
function admin_shifts()
|
||||
{
|
||||
$valid = true;
|
||||
|
||||
$rid = 0;
|
||||
|
@ -343,4 +345,3 @@ function admin_shifts() {
|
|||
])
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function admin_user_title() {
|
||||
function admin_user_title()
|
||||
{
|
||||
return _("All Angels");
|
||||
}
|
||||
|
||||
function admin_user() {
|
||||
function admin_user()
|
||||
{
|
||||
global $user, $privileges, $tshirt_sizes, $privileges;
|
||||
|
||||
$html = '';
|
||||
|
@ -205,4 +207,3 @@ function admin_user() {
|
|||
$html
|
||||
]);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
<?php
|
||||
function credits_title() {
|
||||
function credits_title()
|
||||
{
|
||||
return _("Credits");
|
||||
}
|
||||
|
||||
function guest_credits() {
|
||||
function guest_credits()
|
||||
{
|
||||
return template_render(__DIR__ . '/../../templates/guest_credits.html', []);
|
||||
}
|
||||
?>
|
|
@ -1,19 +1,23 @@
|
|||
<?php
|
||||
|
||||
function login_title() {
|
||||
function login_title()
|
||||
{
|
||||
return _("Login");
|
||||
}
|
||||
|
||||
function register_title() {
|
||||
function register_title()
|
||||
{
|
||||
return _("Register");
|
||||
}
|
||||
|
||||
function logout_title() {
|
||||
function logout_title()
|
||||
{
|
||||
return _("Logout");
|
||||
}
|
||||
|
||||
// Engel registrieren
|
||||
function guest_register() {
|
||||
function guest_register()
|
||||
{
|
||||
global $tshirt_sizes, $enable_tshirt_size, $default_theme, $user, $min_password_length;
|
||||
|
||||
$event_config = EventConfig();
|
||||
|
@ -208,7 +212,7 @@ function guest_register() {
|
|||
if (isset($event_config['buildup_start_date'])) {
|
||||
$buildup_start_date = $event_config['buildup_start_date'];
|
||||
}
|
||||
if(isset($event_config['teardown_end_date'])) {
|
||||
if (isset($event_config['teardown_end_date'])) {
|
||||
$teardown_end_date = $event_config['teardown_end_date'];
|
||||
}
|
||||
}
|
||||
|
@ -287,23 +291,25 @@ function guest_register() {
|
|||
]);
|
||||
}
|
||||
|
||||
function entry_required() {
|
||||
function entry_required()
|
||||
{
|
||||
return '<span class="text-info glyphicon glyphicon-warning-sign"></span>';
|
||||
}
|
||||
|
||||
function guest_logout() {
|
||||
function guest_logout()
|
||||
{
|
||||
session_destroy();
|
||||
redirect(page_link_to("start"));
|
||||
}
|
||||
|
||||
function guest_login() {
|
||||
function guest_login()
|
||||
{
|
||||
$nick = "";
|
||||
|
||||
unset($_SESSION['uid']);
|
||||
$valid = true;
|
||||
|
||||
if (isset($_REQUEST['submit'])) {
|
||||
|
||||
if (isset($_REQUEST['nick']) && strlen(User_validate_Nick($_REQUEST['nick'])) > 0) {
|
||||
$nick = User_validate_Nick($_REQUEST['nick']);
|
||||
$login_user = sql_select("SELECT * FROM `User` WHERE `Nick`='" . sql_escape($nick) . "'");
|
||||
|
@ -382,7 +388,8 @@ function guest_login() {
|
|||
]);
|
||||
}
|
||||
|
||||
function get_register_hint() {
|
||||
function get_register_hint()
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (in_array('register', $privileges)) {
|
||||
|
@ -397,4 +404,3 @@ function get_register_hint() {
|
|||
//FIXME: return error(_("Registration is disabled."), true);
|
||||
return error("Registration is <a href='https://engelsystem.de/33c3/overwhelmed.html'>disabled</a>.", true);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
function guest_start() {
|
||||
function guest_start()
|
||||
{
|
||||
redirect(page_link_to('login'));
|
||||
}
|
||||
?>
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function guest_stats() {
|
||||
function guest_stats()
|
||||
{
|
||||
global $api_key;
|
||||
|
||||
if (isset($_REQUEST['api_key'])) {
|
||||
|
@ -31,5 +32,3 @@ function guest_stats() {
|
|||
'error' => "Missing parameter api_key."
|
||||
]));
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<?php
|
||||
|
||||
// publically available page to feed the news to feedreaders
|
||||
function user_atom() {
|
||||
function user_atom()
|
||||
{
|
||||
global $user, $DISPLAY_NEWS;
|
||||
|
||||
if (! isset($_REQUEST['key']) || ! preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) {
|
||||
|
@ -26,7 +27,8 @@ function user_atom() {
|
|||
raw_output($output);
|
||||
}
|
||||
|
||||
function make_atom_entries_from_news($news_entries) {
|
||||
function make_atom_entries_from_news($news_entries)
|
||||
{
|
||||
$html = '<?xml version="1.0" encoding="utf-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title>Engelsystem</title>
|
||||
|
@ -39,7 +41,8 @@ function make_atom_entries_from_news($news_entries) {
|
|||
return $html;
|
||||
}
|
||||
|
||||
function make_atom_entry_from_news($news_entry) {
|
||||
function make_atom_entry_from_news($news_entry)
|
||||
{
|
||||
return " <entry>
|
||||
<title>" . htmlspecialchars($news_entry['Betreff']) . "</title>
|
||||
<link href=\"" . page_link_to_absolute("news_comments&nid=") . "${news_entry['ID']}\"/>
|
||||
|
@ -48,4 +51,3 @@ function make_atom_entry_from_news($news_entry) {
|
|||
<summary type=\"html\">" . htmlspecialchars($news_entry['Text']) . "</summary>
|
||||
</entry>\n";
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Controller for ical output of users own shifts or any user_shifts filter.
|
||||
*/
|
||||
function user_ical() {
|
||||
function user_ical()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['key']) || ! preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) {
|
||||
|
@ -30,7 +31,8 @@ function user_ical() {
|
|||
*
|
||||
* @param array<Shift> $shifts
|
||||
*/
|
||||
function send_ical_from_shifts($shifts) {
|
||||
function send_ical_from_shifts($shifts)
|
||||
{
|
||||
header("Content-Type: text/calendar; charset=utf-8");
|
||||
$output = "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//-//Engelsystem//DE\r\nCALSCALE:GREGORIAN\r\n";
|
||||
foreach ($shifts as $shift) {
|
||||
|
@ -47,7 +49,8 @@ function send_ical_from_shifts($shifts) {
|
|||
*
|
||||
* @param Shift $shift
|
||||
*/
|
||||
function make_ical_entry_from_shift($shift) {
|
||||
function make_ical_entry_from_shift($shift)
|
||||
{
|
||||
$output = "BEGIN:VEVENT\r\n";
|
||||
$output .= "UID:" . md5($shift['start'] . $shift['end'] . $shift['name']) . "\r\n";
|
||||
$output .= "SUMMARY:" . str_replace("\n", "\\n", $shift['name']) . " (" . str_replace("\n", "\\n", $shift['title']) . ")\r\n";
|
||||
|
@ -60,4 +63,3 @@ function make_ical_entry_from_shift($shift) {
|
|||
$output .= "END:VEVENT\r\n";
|
||||
return $output;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function messages_title() {
|
||||
function messages_title()
|
||||
{
|
||||
return _("Messages");
|
||||
}
|
||||
|
||||
function user_unread_messages() {
|
||||
function user_unread_messages()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (isset($user)) {
|
||||
|
@ -16,7 +18,8 @@ function user_unread_messages() {
|
|||
return '';
|
||||
}
|
||||
|
||||
function user_messages() {
|
||||
function user_messages()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['action'])) {
|
||||
|
@ -128,4 +131,3 @@ function user_messages() {
|
|||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
<?php
|
||||
|
||||
function myshifts_title() {
|
||||
function myshifts_title()
|
||||
{
|
||||
return _("My shifts");
|
||||
}
|
||||
|
||||
// Zeigt die Schichten an, die ein Benutzer belegt
|
||||
function user_myshifts() {
|
||||
function user_myshifts()
|
||||
{
|
||||
global $LETZTES_AUSTRAGEN;
|
||||
global $user, $privileges;
|
||||
|
||||
|
@ -115,4 +117,3 @@ function user_myshifts() {
|
|||
|
||||
redirect(page_link_to('users') . '&action=view&user_id=' . $shifts_user['UID']);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,18 +1,22 @@
|
|||
<?php
|
||||
|
||||
function user_news_comments_title() {
|
||||
function user_news_comments_title()
|
||||
{
|
||||
return _("News comments");
|
||||
}
|
||||
|
||||
function news_title() {
|
||||
function news_title()
|
||||
{
|
||||
return _("News");
|
||||
}
|
||||
|
||||
function meetings_title() {
|
||||
function meetings_title()
|
||||
{
|
||||
return _("Meetings");
|
||||
}
|
||||
|
||||
function user_meetings() {
|
||||
function user_meetings()
|
||||
{
|
||||
global $DISPLAY_NEWS;
|
||||
|
||||
$html = '<div class="col-md-12"><h1>' . meetings_title() . '</h1>' . msg();
|
||||
|
@ -45,7 +49,8 @@ function user_meetings() {
|
|||
return $html;
|
||||
}
|
||||
|
||||
function display_news($news) {
|
||||
function display_news($news)
|
||||
{
|
||||
global $privileges, $page;
|
||||
|
||||
$html = '';
|
||||
|
@ -72,7 +77,8 @@ function display_news($news) {
|
|||
return $html;
|
||||
}
|
||||
|
||||
function user_news_comments() {
|
||||
function user_news_comments()
|
||||
{
|
||||
global $user;
|
||||
|
||||
$html = '<div class="col-md-12"><h1>' . user_news_comments_title() . '</h1>';
|
||||
|
@ -113,7 +119,8 @@ function user_news_comments() {
|
|||
return $html . '</div>';
|
||||
}
|
||||
|
||||
function user_news() {
|
||||
function user_news()
|
||||
{
|
||||
global $DISPLAY_NEWS, $privileges, $user;
|
||||
|
||||
$html = '<div class="col-md-12"><h1>' . news_title() . '</h1>' . msg();
|
||||
|
@ -166,4 +173,3 @@ function user_news() {
|
|||
}
|
||||
return $html . '</div>';
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<?php
|
||||
|
||||
function questions_title() {
|
||||
function questions_title()
|
||||
{
|
||||
return _("Ask the Heaven");
|
||||
}
|
||||
|
||||
function user_questions() {
|
||||
function user_questions()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($_REQUEST['action'])) {
|
||||
|
@ -54,4 +56,3 @@ function user_questions() {
|
|||
}
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function settings_title() {
|
||||
function settings_title()
|
||||
{
|
||||
return _("Settings");
|
||||
}
|
||||
|
||||
|
@ -10,7 +11,8 @@ function settings_title() {
|
|||
* @param User $user_source
|
||||
* The user
|
||||
*/
|
||||
function user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes) {
|
||||
function user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes)
|
||||
{
|
||||
$valid = true;
|
||||
|
||||
if (isset($_REQUEST['mail'])) {
|
||||
|
@ -87,7 +89,8 @@ function user_settings_main($user_source, $enable_tshirt_size, $tshirt_sizes) {
|
|||
* @param User $user_source
|
||||
* The user
|
||||
*/
|
||||
function user_settings_password($user_source) {
|
||||
function user_settings_password($user_source)
|
||||
{
|
||||
global $min_password_length;
|
||||
if (! isset($_REQUEST['password']) || ! verify_password($_REQUEST['password'], $user_source['Passwort'], $user_source['UID'])) {
|
||||
error(_("-> not OK. Please try again."));
|
||||
|
@ -111,7 +114,8 @@ function user_settings_password($user_source) {
|
|||
* @param array<String> $themes
|
||||
* List of available themes
|
||||
*/
|
||||
function user_settings_theme($user_source, $themes) {
|
||||
function user_settings_theme($user_source, $themes)
|
||||
{
|
||||
$valid = true;
|
||||
|
||||
if (isset($_REQUEST['theme']) && isset($themes[$_REQUEST['theme']])) {
|
||||
|
@ -138,7 +142,8 @@ function user_settings_theme($user_source, $themes) {
|
|||
* @param array<String> $locales
|
||||
* List of available locales
|
||||
*/
|
||||
function user_settings_locale($user_source, $locales) {
|
||||
function user_settings_locale($user_source, $locales)
|
||||
{
|
||||
$valid = true;
|
||||
|
||||
if (isset($_REQUEST['language']) && isset($locales[$_REQUEST['language']])) {
|
||||
|
@ -161,7 +166,8 @@ function user_settings_locale($user_source, $locales) {
|
|||
/**
|
||||
* Main user settings page/controller
|
||||
*/
|
||||
function user_settings() {
|
||||
function user_settings()
|
||||
{
|
||||
global $enable_tshirt_size, $tshirt_sizes, $themes, $locales;
|
||||
global $user;
|
||||
|
||||
|
@ -191,4 +197,3 @@ function user_settings() {
|
|||
|
||||
return User_settings_view($user_source, $locales, $themes, $buildup_start_date, $teardown_end_date, $enable_tshirt_size, $tshirt_sizes);
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<?php
|
||||
use Engelsystem\ShiftsFilter;
|
||||
|
||||
function shifts_title() {
|
||||
function shifts_title()
|
||||
{
|
||||
return _("Shifts");
|
||||
}
|
||||
|
||||
|
@ -12,7 +13,8 @@ function shifts_title() {
|
|||
* Split actions into shift edit, shift delete, shift entry edit, shift entry delete
|
||||
* Introduce simpler and beautiful actions for shift entry join/leave for users
|
||||
*/
|
||||
function user_shifts() {
|
||||
function user_shifts()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (User_is_freeloader($user)) {
|
||||
|
@ -39,7 +41,8 @@ function user_shifts() {
|
|||
* @param ShiftsFilter $shiftsFilter
|
||||
* The shiftfilter to update.
|
||||
*/
|
||||
function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) {
|
||||
function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days)
|
||||
{
|
||||
$start_time = $shiftsFilter->getStartTime();
|
||||
if ($start_time == null) {
|
||||
$start_time = time();
|
||||
|
@ -68,7 +71,8 @@ function update_ShiftsFilter_timerange(ShiftsFilter $shiftsFilter, $days) {
|
|||
* @param string[] $days
|
||||
* An array of available filter days
|
||||
*/
|
||||
function update_ShiftsFilter(ShiftsFilter $shiftsFilter, $user_shifts_admin, $days) {
|
||||
function update_ShiftsFilter(ShiftsFilter $shiftsFilter, $user_shifts_admin, $days)
|
||||
{
|
||||
$shiftsFilter->setUserShiftsAdmin($user_shifts_admin);
|
||||
$shiftsFilter->setFilled(check_request_int_array('filled', $shiftsFilter->getFilled()));
|
||||
$shiftsFilter->setRooms(check_request_int_array('rooms', $shiftsFilter->getRooms()));
|
||||
|
@ -76,7 +80,8 @@ function update_ShiftsFilter(ShiftsFilter $shiftsFilter, $user_shifts_admin, $da
|
|||
update_ShiftsFilter_timerange($shiftsFilter, $days);
|
||||
}
|
||||
|
||||
function load_rooms() {
|
||||
function load_rooms()
|
||||
{
|
||||
$rooms = sql_select("SELECT `RID` AS `id`, `Name` AS `name` FROM `Room` WHERE `show`='Y' ORDER BY `Name`");
|
||||
if (count($rooms) == 0) {
|
||||
error(_("The administration has not configured any rooms yet."));
|
||||
|
@ -85,7 +90,8 @@ function load_rooms() {
|
|||
return $rooms;
|
||||
}
|
||||
|
||||
function load_days() {
|
||||
function load_days()
|
||||
{
|
||||
$days = sql_select_single_col("
|
||||
SELECT DISTINCT DATE(FROM_UNIXTIME(`start`)) AS `id`, DATE(FROM_UNIXTIME(`start`)) AS `name`
|
||||
FROM `Shifts`
|
||||
|
@ -97,7 +103,8 @@ function load_days() {
|
|||
return $days;
|
||||
}
|
||||
|
||||
function load_types() {
|
||||
function load_types()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (sql_num_query("SELECT `id`, `name` FROM `AngelTypes` WHERE `restricted` = 0") == 0) {
|
||||
|
@ -111,7 +118,8 @@ function load_types() {
|
|||
return $types;
|
||||
}
|
||||
|
||||
function view_user_shifts() {
|
||||
function view_user_shifts()
|
||||
{
|
||||
global $user, $privileges;
|
||||
global $ical_shifts;
|
||||
|
||||
|
@ -172,11 +180,13 @@ function view_user_shifts() {
|
|||
]);
|
||||
}
|
||||
|
||||
function get_ids_from_array($array) {
|
||||
function get_ids_from_array($array)
|
||||
{
|
||||
return $array["id"];
|
||||
}
|
||||
|
||||
function make_select($items, $selected, $name, $title = null) {
|
||||
function make_select($items, $selected, $name, $title = null)
|
||||
{
|
||||
$html_items = [];
|
||||
if (isset($title)) {
|
||||
$html_items[] = '<h4>' . $title . '</h4>' . "\n";
|
||||
|
@ -194,4 +204,3 @@ function make_select($items, $selected, $name, $title = null) {
|
|||
$html .= '</div>' . "\n";
|
||||
return $html;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
/**
|
||||
* Testet ob ein User eingeloggt ist und lädt die entsprechenden Privilegien
|
||||
*/
|
||||
function load_auth() {
|
||||
function load_auth()
|
||||
{
|
||||
global $user, $privileges;
|
||||
|
||||
$user = null;
|
||||
|
@ -26,7 +27,8 @@ function load_auth() {
|
|||
/**
|
||||
* generate a salt (random string) of arbitrary length suitable for the use with crypt()
|
||||
*/
|
||||
function generate_salt($length = 16) {
|
||||
function generate_salt($length = 16)
|
||||
{
|
||||
$alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
$salt = "";
|
||||
for ($i = 0; $i < $length; $i ++) {
|
||||
|
@ -38,7 +40,8 @@ function generate_salt($length = 16) {
|
|||
/**
|
||||
* set the password of a user
|
||||
*/
|
||||
function set_password($uid, $password) {
|
||||
function set_password($uid, $password)
|
||||
{
|
||||
global $crypt_alg;
|
||||
$result = sql_query("UPDATE `User` SET `Passwort` = '" . sql_escape(crypt($password, $crypt_alg . '$' . generate_salt(16) . '$')) . "', `password_recovery_token`=NULL WHERE `UID` = " . intval($uid) . " LIMIT 1");
|
||||
if ($result === false) {
|
||||
|
@ -51,7 +54,8 @@ function set_password($uid, $password) {
|
|||
* verify a password given a precomputed salt.
|
||||
* if $uid is given and $salt is an old-style salt (plain md5), we convert it automatically
|
||||
*/
|
||||
function verify_password($password, $salt, $uid = false) {
|
||||
function verify_password($password, $salt, $uid = false)
|
||||
{
|
||||
global $crypt_alg;
|
||||
$correct = false;
|
||||
if (substr($salt, 0, 1) == '$') { // new-style crypt()
|
||||
|
@ -71,7 +75,8 @@ function verify_password($password, $salt, $uid = false) {
|
|||
return $correct;
|
||||
}
|
||||
|
||||
function privileges_for_user($user_id) {
|
||||
function privileges_for_user($user_id)
|
||||
{
|
||||
$privileges = [];
|
||||
$user_privs = sql_select("SELECT `Privileges`.`name` FROM `User` JOIN `UserGroups` ON (`User`.`UID` = `UserGroups`.`uid`) JOIN `GroupPrivileges` ON (`UserGroups`.`group_id` = `GroupPrivileges`.`group_id`) JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `User`.`UID`='" . sql_escape($user_id) . "'");
|
||||
foreach ($user_privs as $user_priv) {
|
||||
|
@ -80,7 +85,8 @@ function privileges_for_user($user_id) {
|
|||
return $privileges;
|
||||
}
|
||||
|
||||
function privileges_for_group($group_id) {
|
||||
function privileges_for_group($group_id)
|
||||
{
|
||||
$privileges = [];
|
||||
$groups_privs = sql_select("SELECT * FROM `GroupPrivileges` JOIN `Privileges` ON (`GroupPrivileges`.`privilege_id` = `Privileges`.`id`) WHERE `group_id`='" . sql_escape($group_id) . "'");
|
||||
foreach ($groups_privs as $guest_priv) {
|
||||
|
@ -88,4 +94,3 @@ function privileges_for_group($group_id) {
|
|||
}
|
||||
return $privileges;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -10,14 +10,16 @@
|
|||
* The value
|
||||
* @return string rendered html
|
||||
*/
|
||||
function form_hidden($name, $value) {
|
||||
function form_hidden($name, $value)
|
||||
{
|
||||
return '<input type="hidden" name="' . $name . '" value="' . $value . '" />';
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert ein Zahlenfeld mit Buttons zum verstellen
|
||||
*/
|
||||
function form_spinner($name, $label, $value) {
|
||||
function form_spinner($name, $label, $value)
|
||||
{
|
||||
return form_element($label, '
|
||||
<div class="input-group">
|
||||
<input id="spinner-' . $name . '" class="form-control" type="text" name="' . $name . '" value="' . $value . '" />
|
||||
|
@ -54,7 +56,8 @@ function form_spinner($name, $label, $value) {
|
|||
* Earliest possible date
|
||||
* @return HTML
|
||||
*/
|
||||
function form_date($name, $label, $value, $start_date = '', $end_date = '') {
|
||||
function form_date($name, $label, $value, $start_date = '', $end_date = '')
|
||||
{
|
||||
$dom_id = $name . '-date';
|
||||
$value = is_numeric($value) ? date('Y-m-d', $value) : '';
|
||||
$start_date = is_numeric($start_date) ? date('Y-m-d', $start_date) : '';
|
||||
|
@ -89,7 +92,8 @@ function form_date($name, $label, $value, $start_date = '', $end_date = '') {
|
|||
* @param
|
||||
* selected Array mit den Keys, die ausgewählt sind
|
||||
*/
|
||||
function form_checkboxes($name, $label, $items, $selected) {
|
||||
function form_checkboxes($name, $label, $items, $selected)
|
||||
{
|
||||
$html = form_element($label, '');
|
||||
foreach ($items as $key => $item) {
|
||||
$html .= form_checkbox($name . '_' . $key, $item, array_search($key, $selected) !== false);
|
||||
|
@ -111,7 +115,8 @@ function form_checkboxes($name, $label, $items, $selected) {
|
|||
* @param
|
||||
* disabled Wie selected, nur dass die entsprechenden Checkboxen deaktiviert statt markiert sind
|
||||
*/
|
||||
function form_multi_checkboxes($names, $label, $items, $selected, $disabled = []) {
|
||||
function form_multi_checkboxes($names, $label, $items, $selected, $disabled = [])
|
||||
{
|
||||
$html = "<table><thead><tr>";
|
||||
foreach ($names as $title) {
|
||||
$html .= "<th>$title</th>";
|
||||
|
@ -136,21 +141,24 @@ function form_multi_checkboxes($names, $label, $items, $selected, $disabled = []
|
|||
/**
|
||||
* Rendert eine Checkbox
|
||||
*/
|
||||
function form_checkbox($name, $label, $selected, $value = 'checked') {
|
||||
function form_checkbox($name, $label, $selected, $value = 'checked')
|
||||
{
|
||||
return '<div class="checkbox"><label><input type="checkbox" id="' . $name . '" name="' . $name . '" value="' . $value . '"' . ($selected ? ' checked="checked"' : '') . ' /> ' . $label . '</label></div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert einen Radio
|
||||
*/
|
||||
function form_radio($name, $label, $selected, $value) {
|
||||
function form_radio($name, $label, $selected, $value)
|
||||
{
|
||||
return '<div class="radio"><label><input type="radio" id="' . $name . '" name="' . $name . '" value="' . $value . '"' . ($selected ? ' checked="checked"' : '') . ' /> ' . $label . '</label></div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert einen Infotext in das Formular
|
||||
*/
|
||||
function form_info($label, $text = "") {
|
||||
function form_info($label, $text = "")
|
||||
{
|
||||
if ($label == "") {
|
||||
return '<span class="help-block">' . glyph('info-sign') . $text . '</span>';
|
||||
}
|
||||
|
@ -163,14 +171,16 @@ function form_info($label, $text = "") {
|
|||
/**
|
||||
* Rendert den Absenden-Button eines Formulars
|
||||
*/
|
||||
function form_submit($name, $label) {
|
||||
function form_submit($name, $label)
|
||||
{
|
||||
return form_element('<input class="btn btn-primary" type="submit" name="' . $name . '" value="' . $label . '" />', "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert ein Formular-Textfeld
|
||||
*/
|
||||
function form_text($name, $label, $value, $disabled = false) {
|
||||
function form_text($name, $label, $value, $disabled = false)
|
||||
{
|
||||
$disabled = $disabled ? ' disabled="disabled"' : '';
|
||||
return form_element($label, '<input class="form-control" id="form_' . $name . '" type="text" name="' . $name . '" value="' . htmlspecialchars($value) . '" ' . $disabled . '/>', 'form_' . $name);
|
||||
}
|
||||
|
@ -187,7 +197,8 @@ function form_text($name, $label, $value, $disabled = false) {
|
|||
* @param Boolean $disabled
|
||||
* Is the field enabled?
|
||||
*/
|
||||
function form_text_placeholder($name, $placeholder, $value, $disabled = false) {
|
||||
function form_text_placeholder($name, $placeholder, $value, $disabled = false)
|
||||
{
|
||||
$disabled = $disabled ? ' disabled="disabled"' : '';
|
||||
return form_element('', '<input class="form-control" id="form_' . $name . '" type="text" name="' . $name . '" value="' . htmlspecialchars($value) . '" placeholder="' . $placeholder . '" ' . $disabled . '/>');
|
||||
}
|
||||
|
@ -195,7 +206,8 @@ function form_text_placeholder($name, $placeholder, $value, $disabled = false) {
|
|||
/**
|
||||
* Rendert ein Formular-Emailfeld
|
||||
*/
|
||||
function form_email($name, $label, $value, $disabled = false) {
|
||||
function form_email($name, $label, $value, $disabled = false)
|
||||
{
|
||||
$disabled = $disabled ? ' disabled="disabled"' : '';
|
||||
return form_element($label, '<input class="form-control" id="form_' . $name . '" type="email" name="' . $name . '" value="' . htmlspecialchars($value) . '" ' . $disabled . '/>', 'form_' . $name);
|
||||
}
|
||||
|
@ -203,14 +215,16 @@ function form_email($name, $label, $value, $disabled = false) {
|
|||
/**
|
||||
* Rendert ein Formular-Dateifeld
|
||||
*/
|
||||
function form_file($name, $label) {
|
||||
function form_file($name, $label)
|
||||
{
|
||||
return form_element($label, '<input id="form_' . $name . '" type="file" name="' . $name . '" />', 'form_' . $name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert ein Formular-Passwortfeld
|
||||
*/
|
||||
function form_password($name, $label, $disabled = false) {
|
||||
function form_password($name, $label, $disabled = false)
|
||||
{
|
||||
$disabled = $disabled ? ' disabled="disabled"' : '';
|
||||
return form_element($label, '<input class="form-control" id="form_' . $name . '" type="password" name="' . $name . '" value="" ' . $disabled . '/>', 'form_' . $name);
|
||||
}
|
||||
|
@ -218,7 +232,8 @@ function form_password($name, $label, $disabled = false) {
|
|||
/**
|
||||
* Renders a password input with placeholder instead of label.
|
||||
*/
|
||||
function form_password_placeholder($name, $placeholder, $disabled = false) {
|
||||
function form_password_placeholder($name, $placeholder, $disabled = false)
|
||||
{
|
||||
$disabled = $disabled ? ' disabled="disabled"' : '';
|
||||
return form_element('', '<input class="form-control" id="form_' . $name . '" type="password" name="' . $name . '" value="" placeholder="' . $placeholder . '" ' . $disabled . '/>', 'form_' . $name);
|
||||
}
|
||||
|
@ -226,7 +241,8 @@ function form_password_placeholder($name, $placeholder, $disabled = false) {
|
|||
/**
|
||||
* Rendert ein Formular-Textfeld
|
||||
*/
|
||||
function form_textarea($name, $label, $value, $disabled = false) {
|
||||
function form_textarea($name, $label, $value, $disabled = false)
|
||||
{
|
||||
$disabled = $disabled ? ' disabled="disabled"' : '';
|
||||
return form_element($label, '<textarea rows="5" class="form-control" id="form_' . $name . '" type="text" name="' . $name . '" ' . $disabled . '>' . $value . '</textarea>', 'form_' . $name);
|
||||
}
|
||||
|
@ -234,14 +250,16 @@ function form_textarea($name, $label, $value, $disabled = false) {
|
|||
/**
|
||||
* Rendert ein Formular-Auswahlfeld
|
||||
*/
|
||||
function form_select($name, $label, $values, $selected) {
|
||||
function form_select($name, $label, $values, $selected)
|
||||
{
|
||||
return form_element($label, html_select_key('form_' . $name, $name, $values, $selected), 'form_' . $name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert ein Formular-Element
|
||||
*/
|
||||
function form_element($label, $input, $for = "") {
|
||||
function form_element($label, $input, $for = "")
|
||||
{
|
||||
if ($label == '') {
|
||||
return '<div class="form-group">' . $input . '</div>';
|
||||
}
|
||||
|
@ -252,11 +270,13 @@ function form_element($label, $input, $for = "") {
|
|||
/**
|
||||
* Rendert ein Formular
|
||||
*/
|
||||
function form($elements, $action = "") {
|
||||
function form($elements, $action = "")
|
||||
{
|
||||
return '<form role="form" action="' . $action . '" enctype="multipart/form-data" method="post">' . join($elements) . '</form>';
|
||||
}
|
||||
|
||||
function html_options($name, $options, $selected = "") {
|
||||
function html_options($name, $options, $selected = "")
|
||||
{
|
||||
$html = "";
|
||||
foreach ($options as $value => $label) {
|
||||
$html .= '<input type="radio"' . ($value == $selected ? ' checked="checked"' : '') . ' name="' . $name . '" value="' . $value . '"> ' . $label;
|
||||
|
@ -265,7 +285,8 @@ function html_options($name, $options, $selected = "") {
|
|||
return $html;
|
||||
}
|
||||
|
||||
function html_select_key($dom_id, $name, $rows, $selected) {
|
||||
function html_select_key($dom_id, $name, $rows, $selected)
|
||||
{
|
||||
$html = '<select class="form-control" id="' . $dom_id . '" name="' . $name . '">';
|
||||
foreach ($rows as $key => $row) {
|
||||
if (($key == $selected) || ($row == $selected)) {
|
||||
|
@ -277,5 +298,3 @@ function html_select_key($dom_id, $name, $rows, $selected) {
|
|||
$html .= '</select>';
|
||||
return $html;
|
||||
}
|
||||
|
||||
?>
|
|
@ -7,7 +7,8 @@
|
|||
* @param
|
||||
* $message
|
||||
*/
|
||||
function engelsystem_log($message) {
|
||||
function engelsystem_log($message)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$nick = "Guest";
|
||||
|
@ -20,7 +21,8 @@ function engelsystem_log($message) {
|
|||
/**
|
||||
* Generates a PHP Stacktrace.
|
||||
*/
|
||||
function debug_string_backtrace() {
|
||||
function debug_string_backtrace()
|
||||
{
|
||||
ob_start();
|
||||
debug_print_backtrace();
|
||||
$trace = ob_get_contents();
|
||||
|
@ -35,5 +37,3 @@ function debug_string_backtrace() {
|
|||
|
||||
return $trace;
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,21 +1,24 @@
|
|||
<?php
|
||||
use Engelsystem\UserHintsRenderer;
|
||||
|
||||
function page_link_to($page = "") {
|
||||
function page_link_to($page = "")
|
||||
{
|
||||
if ($page == "") {
|
||||
return '?';
|
||||
}
|
||||
return '?p=' . $page;
|
||||
}
|
||||
|
||||
function page_link_to_absolute($page) {
|
||||
function page_link_to_absolute($page)
|
||||
{
|
||||
return (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . preg_replace("/\?.*$/", '', $_SERVER['REQUEST_URI']) . page_link_to($page);
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the user hints
|
||||
*/
|
||||
function header_render_hints() {
|
||||
function header_render_hints()
|
||||
{
|
||||
global $user;
|
||||
|
||||
$hints_renderer = new UserHintsRenderer();
|
||||
|
@ -39,7 +42,8 @@ function header_render_hints() {
|
|||
/**
|
||||
* Renders the header toolbar containing search, login/logout, user and settings links.
|
||||
*/
|
||||
function header_toolbar() {
|
||||
function header_toolbar()
|
||||
{
|
||||
global $page, $privileges, $user;
|
||||
|
||||
$toolbar_items = [];
|
||||
|
@ -73,7 +77,8 @@ function header_toolbar() {
|
|||
return toolbar($toolbar_items, true);
|
||||
}
|
||||
|
||||
function make_user_submenu() {
|
||||
function make_user_submenu()
|
||||
{
|
||||
global $privileges, $page;
|
||||
|
||||
$user_submenu = make_langselect();
|
||||
|
@ -93,7 +98,8 @@ function make_user_submenu() {
|
|||
return $user_submenu;
|
||||
}
|
||||
|
||||
function make_navigation() {
|
||||
function make_navigation()
|
||||
{
|
||||
global $page, $privileges;
|
||||
|
||||
$menu = [];
|
||||
|
@ -148,7 +154,8 @@ function make_navigation() {
|
|||
* @param string[] $menu
|
||||
* Rendered menu
|
||||
*/
|
||||
function make_room_navigation($menu) {
|
||||
function make_room_navigation($menu)
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
if (! in_array('view_rooms', $privileges)) {
|
||||
|
@ -172,8 +179,7 @@ function make_room_navigation($menu) {
|
|||
return $menu;
|
||||
}
|
||||
|
||||
function make_menu() {
|
||||
function make_menu()
|
||||
{
|
||||
return make_navigation();
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -17,7 +17,8 @@ use Engelsystem\ValidationResult;
|
|||
* @param int $default_value
|
||||
* Default value unix timestamp
|
||||
*/
|
||||
function check_request_datetime($date_name, $time_name, $allowed_days, $default_value) {
|
||||
function check_request_datetime($date_name, $time_name, $allowed_days, $default_value)
|
||||
{
|
||||
$time = date("H:i", $default_value);
|
||||
$day = date("Y-m-d", $default_value);
|
||||
|
||||
|
@ -40,7 +41,8 @@ function check_request_datetime($date_name, $time_name, $allowed_days, $default_
|
|||
* The string to parse
|
||||
* @return The parsed unix timestamp
|
||||
*/
|
||||
function parse_date($pattern, $value) {
|
||||
function parse_date($pattern, $value)
|
||||
{
|
||||
$datetime = DateTime::createFromFormat($pattern, trim($value));
|
||||
if ($datetime == null) {
|
||||
return null;
|
||||
|
@ -51,7 +53,8 @@ function parse_date($pattern, $value) {
|
|||
/**
|
||||
* Leitet den Browser an die übergebene URL weiter und hält das Script an.
|
||||
*/
|
||||
function redirect($url) {
|
||||
function redirect($url)
|
||||
{
|
||||
header("Location: " . $url, true, 302);
|
||||
raw_output("");
|
||||
}
|
||||
|
@ -62,7 +65,8 @@ function redirect($url) {
|
|||
* @param String $output
|
||||
* String to display
|
||||
*/
|
||||
function raw_output($output) {
|
||||
function raw_output($output)
|
||||
{
|
||||
echo $output;
|
||||
die();
|
||||
}
|
||||
|
@ -77,7 +81,8 @@ function raw_output($output) {
|
|||
* @param string $value_name
|
||||
* name of the column to use as displayed value
|
||||
*/
|
||||
function select_array($data, $key_name, $value_name) {
|
||||
function select_array($data, $key_name, $value_name)
|
||||
{
|
||||
$ret = [];
|
||||
foreach ($data as $value) {
|
||||
$ret[$value[$key_name]] = $value[$value_name];
|
||||
|
@ -93,7 +98,8 @@ function select_array($data, $key_name, $value_name) {
|
|||
* @param array<int> $default
|
||||
* Default return value, if param is not set
|
||||
*/
|
||||
function check_request_int_array($name, $default = []) {
|
||||
function check_request_int_array($name, $default = [])
|
||||
{
|
||||
if (isset($_REQUEST[$name]) && is_array($_REQUEST[$name])) {
|
||||
return array_filter($_REQUEST[$name], 'is_numeric');
|
||||
}
|
||||
|
@ -112,7 +118,8 @@ function check_request_int_array($name, $default = []) {
|
|||
* is a null value allowed?
|
||||
* @return ValidationResult containing the parsed date
|
||||
*/
|
||||
function check_request_date($name, $error_message = null, $null_allowed = false) {
|
||||
function check_request_date($name, $error_message = null, $null_allowed = false)
|
||||
{
|
||||
if (! isset($_REQUEST[$name])) {
|
||||
return new ValidationResult($null_allowed, null);
|
||||
}
|
||||
|
@ -131,7 +138,8 @@ function check_request_date($name, $error_message = null, $null_allowed = false)
|
|||
* is a null value allowed?
|
||||
* @return ValidationResult containing the parsed date
|
||||
*/
|
||||
function check_date($input, $error_message = null, $null_allowed = false) {
|
||||
function check_date($input, $error_message = null, $null_allowed = false)
|
||||
{
|
||||
if ($tmp = parse_date("Y-m-d H:i", trim($input) . " 00:00")) {
|
||||
return new ValidationResult(true, $tmp);
|
||||
}
|
||||
|
@ -146,7 +154,8 @@ function check_date($input, $error_message = null, $null_allowed = false) {
|
|||
/**
|
||||
* Returns REQUEST value filtered or default value (null) if not set.
|
||||
*/
|
||||
function strip_request_item($name, $default_value = null) {
|
||||
function strip_request_item($name, $default_value = null)
|
||||
{
|
||||
if (isset($_REQUEST[$name])) {
|
||||
return strip_item($_REQUEST[$name]);
|
||||
}
|
||||
|
@ -157,7 +166,8 @@ function strip_request_item($name, $default_value = null) {
|
|||
* Testet, ob der angegebene REQUEST Wert ein Integer ist, bzw.
|
||||
* eine ID sein könnte.
|
||||
*/
|
||||
function test_request_int($name) {
|
||||
function test_request_int($name)
|
||||
{
|
||||
if (isset($_REQUEST[$name])) {
|
||||
return preg_match("/^[0-9]*$/", $_REQUEST[$name]);
|
||||
}
|
||||
|
@ -167,7 +177,8 @@ function test_request_int($name) {
|
|||
/**
|
||||
* Gibt den gefilterten REQUEST Wert mit Zeilenumbrüchen zurück
|
||||
*/
|
||||
function strip_request_item_nl($name, $default_value = null) {
|
||||
function strip_request_item_nl($name, $default_value = null)
|
||||
{
|
||||
if (isset($_REQUEST[$name])) {
|
||||
return preg_replace("/([^\p{L}\p{S}\p{P}\p{Z}\p{N}+\n]{1,})/ui", '', strip_tags($_REQUEST[$name]));
|
||||
}
|
||||
|
@ -177,15 +188,15 @@ function strip_request_item_nl($name, $default_value = null) {
|
|||
/**
|
||||
* Entfernt unerwünschte Zeichen
|
||||
*/
|
||||
function strip_item($item) {
|
||||
function strip_item($item)
|
||||
{
|
||||
return preg_replace("/([^\p{L}\p{S}\p{P}\p{Z}\p{N}+]{1,})/ui", '', strip_tags($item));
|
||||
}
|
||||
|
||||
/**
|
||||
* Überprüft eine E-Mail-Adresse.
|
||||
*/
|
||||
function check_email($email) {
|
||||
function check_email($email)
|
||||
{
|
||||
return (bool) filter_var($email, FILTER_VALIDATE_EMAIL);
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -16,7 +16,8 @@ $themes = [
|
|||
*
|
||||
* @param string $text
|
||||
*/
|
||||
function mute($text) {
|
||||
function mute($text)
|
||||
{
|
||||
return '<span class="text-muted">' . $text . '</span>';
|
||||
}
|
||||
|
||||
|
@ -28,11 +29,13 @@ function mute($text) {
|
|||
* @param string $class
|
||||
* default, primary, info, success, warning, danger
|
||||
*/
|
||||
function label($content, $class = 'default') {
|
||||
function label($content, $class = 'default')
|
||||
{
|
||||
return '<span class="label label-' . $class . '">' . $content . '</span>';
|
||||
}
|
||||
|
||||
function progress_bar($valuemin, $valuemax, $valuenow, $class = '', $content = '') {
|
||||
function progress_bar($valuemin, $valuemax, $valuenow, $class = '', $content = '')
|
||||
{
|
||||
return '<div class="progress"><div class="progress-bar ' . $class . '" role="progressbar" aria-valuenow="' . $valuenow . '" aria-valuemin="' . $valuemin . '" aria-valuemax="' . $valuemax . '" style="width: ' . floor(($valuenow - $valuemin) * 100 / ($valuemax - $valuemin)) . '%">' . $content . '</div></div>';
|
||||
}
|
||||
|
||||
|
@ -41,7 +44,8 @@ function progress_bar($valuemin, $valuemax, $valuenow, $class = '', $content = '
|
|||
*
|
||||
* @param string $glyph_name
|
||||
*/
|
||||
function glyph($glyph_name) {
|
||||
function glyph($glyph_name)
|
||||
{
|
||||
return ' <span class="glyphicon glyphicon-' . $glyph_name . '"></span> ';
|
||||
}
|
||||
|
||||
|
@ -50,11 +54,13 @@ function glyph($glyph_name) {
|
|||
*
|
||||
* @param boolean $boolean
|
||||
*/
|
||||
function glyph_bool($boolean) {
|
||||
function glyph_bool($boolean)
|
||||
{
|
||||
return '<span class="text-' . ($boolean ? 'success' : 'danger') . '">' . glyph($boolean ? 'ok' : 'remove') . '</span>';
|
||||
}
|
||||
|
||||
function div($class, $content = [], $dom_id = "") {
|
||||
function div($class, $content = [], $dom_id = "")
|
||||
{
|
||||
if (is_array($content)) {
|
||||
$content = join("\n", $content);
|
||||
}
|
||||
|
@ -62,7 +68,8 @@ function div($class, $content = [], $dom_id = "") {
|
|||
return '<div' . $dom_id . ' class="' . $class . '">' . $content . '</div>';
|
||||
}
|
||||
|
||||
function heading($content, $number = 1) {
|
||||
function heading($content, $number = 1)
|
||||
{
|
||||
return "<h" . $number . ">" . $content . "</h" . $number . ">";
|
||||
}
|
||||
|
||||
|
@ -72,11 +79,13 @@ function heading($content, $number = 1) {
|
|||
* @param array $items
|
||||
* @return string
|
||||
*/
|
||||
function toolbar($items = [], $right = false) {
|
||||
function toolbar($items = [], $right = false)
|
||||
{
|
||||
return '<ul class="nav navbar-nav' . ($right ? ' navbar-right' : '') . '">' . join("\n", $items) . '</ul>';
|
||||
}
|
||||
|
||||
function toolbar_pills($items) {
|
||||
function toolbar_pills($items)
|
||||
{
|
||||
return '<ul class="nav nav-pills">' . join("\n", $items) . '</ul>';
|
||||
}
|
||||
|
||||
|
@ -89,21 +98,25 @@ function toolbar_pills($items) {
|
|||
* @param bool $selected
|
||||
* @return string
|
||||
*/
|
||||
function toolbar_item_link($href, $glyphicon, $label, $selected = false) {
|
||||
function toolbar_item_link($href, $glyphicon, $label, $selected = false)
|
||||
{
|
||||
return '<li class="' . ($selected ? 'active' : '') . '"><a href="' . $href . '">' . ($glyphicon != '' ? '<span class="glyphicon glyphicon-' . $glyphicon . '"></span> ' : '') . $label . '</a></li>';
|
||||
}
|
||||
|
||||
function toolbar_item_divider() {
|
||||
function toolbar_item_divider()
|
||||
{
|
||||
return '<li class="divider"></li>';
|
||||
}
|
||||
|
||||
function toolbar_dropdown($glyphicon, $label, $submenu, $class = '') {
|
||||
function toolbar_dropdown($glyphicon, $label, $submenu, $class = '')
|
||||
{
|
||||
return '<li class="dropdown ' . $class . '">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">' . ($glyphicon != '' ? '<span class="glyphicon glyphicon-' . $glyphicon . '"></span> ' : '') . $label . ' <span class="caret"></span></a>
|
||||
<ul class="dropdown-menu" role="menu">' . join("\n", $submenu) . '</ul></li>';
|
||||
}
|
||||
|
||||
function toolbar_popover($glyphicon, $label, $content, $class = '') {
|
||||
function toolbar_popover($glyphicon, $label, $content, $class = '')
|
||||
{
|
||||
$dom_id = md5(microtime() . $glyphicon . $label);
|
||||
return '<li class="dropdown messages ' . $class . '">
|
||||
<a id="' . $dom_id . '" href="#" tabindex="0">' . ($glyphicon != '' ? '<span class="glyphicon glyphicon-' . $glyphicon . '"></span> ' : '') . $label . ' <span class="caret"></span></a>
|
||||
|
@ -125,7 +138,8 @@ function toolbar_popover($glyphicon, $label, $content, $class = '') {
|
|||
* Generiert HTML Code für eine "Seite".
|
||||
* Fügt dazu die übergebenen Elemente zusammen.
|
||||
*/
|
||||
function page($elements) {
|
||||
function page($elements)
|
||||
{
|
||||
return join($elements);
|
||||
}
|
||||
|
||||
|
@ -133,14 +147,16 @@ function page($elements) {
|
|||
* Generiert HTML Code für eine "Seite" mit zentraler Überschrift
|
||||
* Fügt dazu die übergebenen Elemente zusammen.
|
||||
*/
|
||||
function page_with_title($title, $elements) {
|
||||
function page_with_title($title, $elements)
|
||||
{
|
||||
return '<div class="col-md-12"><h1>' . $title . '</h1>' . join($elements) . '</div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert eine Datentabelle
|
||||
*/
|
||||
function table($columns, $rows_raw, $data = true) {
|
||||
function table($columns, $rows_raw, $data = true)
|
||||
{
|
||||
// If only one column is given
|
||||
if (! is_array($columns)) {
|
||||
$rows = [];
|
||||
|
@ -161,7 +177,8 @@ function table($columns, $rows_raw, $data = true) {
|
|||
* Helper for rendering a html-table.
|
||||
* use table()
|
||||
*/
|
||||
function render_table($columns, $rows, $data = true) {
|
||||
function render_table($columns, $rows, $data = true)
|
||||
{
|
||||
if (count($rows) == 0) {
|
||||
return info(_("No data found."), true);
|
||||
}
|
||||
|
@ -192,30 +209,35 @@ function render_table($columns, $rows, $data = true) {
|
|||
/**
|
||||
* Rendert einen Knopf
|
||||
*/
|
||||
function button($href, $label, $class = "") {
|
||||
function button($href, $label, $class = "")
|
||||
{
|
||||
return '<a href="' . $href . '" class="btn btn-default ' . $class . '">' . $label . '</a>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert einen Knopf mit Glyph
|
||||
*/
|
||||
function button_glyph($href, $glyph, $class = "") {
|
||||
function button_glyph($href, $glyph, $class = "")
|
||||
{
|
||||
return button($href, glyph($glyph), $class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rendert eine Toolbar mit Knöpfen
|
||||
*/
|
||||
function buttons($buttons = []) {
|
||||
function buttons($buttons = [])
|
||||
{
|
||||
return '<div class="form-group">' . table_buttons($buttons) . '</div>';
|
||||
}
|
||||
|
||||
function table_buttons($buttons = []) {
|
||||
function table_buttons($buttons = [])
|
||||
{
|
||||
return '<div class="btn-group">' . join(' ', $buttons) . '</div>';
|
||||
}
|
||||
|
||||
// Load and render template
|
||||
function template_render($file, $data) {
|
||||
function template_render($file, $data)
|
||||
{
|
||||
if (file_exists($file)) {
|
||||
$template = file_get_contents($file);
|
||||
if (is_array($data)) {
|
||||
|
@ -228,14 +250,16 @@ function template_render($file, $data) {
|
|||
engelsystem_error("Cannot find template file «" . $file . "».");
|
||||
}
|
||||
|
||||
function shorten($str, $length = 50) {
|
||||
function shorten($str, $length = 50)
|
||||
{
|
||||
if (strlen($str) < $length) {
|
||||
return $str;
|
||||
}
|
||||
return '<span title="' . htmlentities($str, ENT_COMPAT, 'UTF-8') . '">' . substr($str, 0, $length - 3) . '...</span>';
|
||||
}
|
||||
|
||||
function table_body($array) {
|
||||
function table_body($array)
|
||||
{
|
||||
$html = "";
|
||||
foreach ($array as $line) {
|
||||
$html .= "<tr>";
|
||||
|
@ -251,7 +275,8 @@ function table_body($array) {
|
|||
return $html;
|
||||
}
|
||||
|
||||
function ReplaceSmilies($neueckig) {
|
||||
function ReplaceSmilies($neueckig)
|
||||
{
|
||||
$neueckig = str_replace(";o))", "<img src=\"pic/smiles/icon_redface.gif\">", $neueckig);
|
||||
$neueckig = str_replace(":-))", "<img src=\"pic/smiles/icon_redface.gif\">", $neueckig);
|
||||
$neueckig = str_replace(";o)", "<img src=\"pic/smiles/icon_wind.gif\">", $neueckig);
|
||||
|
@ -275,4 +300,3 @@ function ReplaceSmilies($neueckig) {
|
|||
|
||||
return $neueckig;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
*
|
||||
* @param AngelType $angeltype
|
||||
*/
|
||||
function AngelType_name_render($angeltype) {
|
||||
function AngelType_name_render($angeltype)
|
||||
{
|
||||
return '<a href="' . angeltype_link($angeltype['id']) . '">' . ($angeltype['restricted'] ? glyph('lock') : '') . $angeltype['name'] . '</a>';
|
||||
}
|
||||
|
||||
|
@ -20,7 +21,8 @@ function AngelType_name_render($angeltype) {
|
|||
* UserAngelType and AngelType
|
||||
* @return string
|
||||
*/
|
||||
function AngelType_render_membership($user_angeltype) {
|
||||
function AngelType_render_membership($user_angeltype)
|
||||
{
|
||||
if ($user_angeltype['user_angeltype_id'] != null) {
|
||||
if ($user_angeltype['restricted']) {
|
||||
if ($user_angeltype['confirm_user_id'] == null) {
|
||||
|
@ -37,7 +39,8 @@ function AngelType_render_membership($user_angeltype) {
|
|||
return glyph_bool(false);
|
||||
}
|
||||
|
||||
function AngelType_delete_view($angeltype) {
|
||||
function AngelType_delete_view($angeltype)
|
||||
{
|
||||
return page_with_title(sprintf(_("Delete angeltype %s"), $angeltype['name']), [
|
||||
info(sprintf(_("Do you want to delete angeltype %s?"), $angeltype['name']), true),
|
||||
buttons([
|
||||
|
@ -55,7 +58,8 @@ function AngelType_delete_view($angeltype) {
|
|||
* @param boolean $supporter_mode
|
||||
* Is the user a supporter of this angeltype?
|
||||
*/
|
||||
function AngelType_edit_view($angeltype, $supporter_mode) {
|
||||
function AngelType_edit_view($angeltype, $supporter_mode)
|
||||
{
|
||||
$contact_info = AngelType_contact_info($angeltype);
|
||||
return page_with_title(sprintf(_("Edit %s"), $angeltype['name']), [
|
||||
buttons([
|
||||
|
@ -81,7 +85,8 @@ function AngelType_edit_view($angeltype, $supporter_mode) {
|
|||
/**
|
||||
* Renders the buttons for the angeltype view.
|
||||
*/
|
||||
function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $supporter, $user_driver_license, $user) {
|
||||
function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $supporter, $user_driver_license, $user)
|
||||
{
|
||||
$buttons = [
|
||||
button(page_link_to('angeltypes'), _("Angeltypes"), 'back')
|
||||
];
|
||||
|
@ -118,7 +123,8 @@ function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes,
|
|||
*
|
||||
* @return [supporters, members, unconfirmed members]
|
||||
*/
|
||||
function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes) {
|
||||
function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes)
|
||||
{
|
||||
$supporters = [];
|
||||
$members_confirmed = [];
|
||||
$members_unconfirmed = [];
|
||||
|
@ -171,7 +177,8 @@ function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $a
|
|||
/**
|
||||
* Creates the needed member table headers according to given rights and settings from the angeltype.
|
||||
*/
|
||||
function AngelType_view_table_headers($angeltype, $supporter, $admin_angeltypes) {
|
||||
function AngelType_view_table_headers($angeltype, $supporter, $admin_angeltypes)
|
||||
{
|
||||
if ($angeltype['requires_driver_license'] && ($supporter || $admin_angeltypes)) {
|
||||
return [
|
||||
'Nick' => _("Nick"),
|
||||
|
@ -196,7 +203,8 @@ function AngelType_view_table_headers($angeltype, $supporter, $admin_angeltypes)
|
|||
/**
|
||||
* Render an angeltype page containing the member lists.
|
||||
*/
|
||||
function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $supporter, $user_driver_license, $user) {
|
||||
function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $supporter, $user_driver_license, $user)
|
||||
{
|
||||
$page = [
|
||||
AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $supporter, $user_driver_license, $user),
|
||||
msg()
|
||||
|
@ -257,7 +265,8 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel
|
|||
*
|
||||
* @param array $angeltypes
|
||||
*/
|
||||
function AngelTypes_list_view($angeltypes, $admin_angeltypes) {
|
||||
function AngelTypes_list_view($angeltypes, $admin_angeltypes)
|
||||
{
|
||||
return page_with_title(angeltypes_title(), [
|
||||
msg(),
|
||||
buttons([
|
||||
|
@ -277,7 +286,8 @@ function AngelTypes_list_view($angeltypes, $admin_angeltypes) {
|
|||
/**
|
||||
* Renders the about info for an angeltype.
|
||||
*/
|
||||
function AngelTypes_about_view_angeltype($angeltype) {
|
||||
function AngelTypes_about_view_angeltype($angeltype)
|
||||
{
|
||||
$parsedown = new Parsedown();
|
||||
|
||||
$html = '<h2>' . $angeltype['name'] . '</h2>';
|
||||
|
@ -306,7 +316,8 @@ function AngelTypes_about_view_angeltype($angeltype) {
|
|||
/**
|
||||
* Renders a site that contains every angeltype and its description, basically as an overview of the needed help types.
|
||||
*/
|
||||
function AngelTypes_about_view($angeltypes, $user_logged_in) {
|
||||
function AngelTypes_about_view($angeltypes, $user_logged_in)
|
||||
{
|
||||
global $faq_url;
|
||||
|
||||
$content = [
|
||||
|
@ -325,5 +336,3 @@ function AngelTypes_about_view($angeltypes, $user_logged_in) {
|
|||
|
||||
return page_with_title(_("Teams/Job description"), $content);
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
* Shows basic event infos and countdowns.
|
||||
* @param EventConfig $event_config The event configuration
|
||||
*/
|
||||
function EventConfig_countdown_page($event_config) {
|
||||
function EventConfig_countdown_page($event_config)
|
||||
{
|
||||
if ($event_config == null) {
|
||||
return div('col-md-12 text-center', [
|
||||
heading(sprintf(_("Welcome to the %s!"), '<span class="icon-icon_angel"></span> ENGELSYSTEM'), 2)
|
||||
|
@ -57,7 +58,8 @@ function EventConfig_countdown_page($event_config) {
|
|||
/**
|
||||
* Converts event name and start+end date into a line of text.
|
||||
*/
|
||||
function EventConfig_info($event_config) {
|
||||
function EventConfig_info($event_config)
|
||||
{
|
||||
if ($event_config == null) {
|
||||
return "";
|
||||
}
|
||||
|
@ -97,7 +99,8 @@ function EventConfig_info($event_config) {
|
|||
* @param date $event_end_date
|
||||
* @param date $teardown_end_date
|
||||
*/
|
||||
function EventConfig_edit_view($event_name, $event_welcome_msg, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date) {
|
||||
function EventConfig_edit_view($event_name, $event_welcome_msg, $buildup_start_date, $event_start_date, $event_end_date, $teardown_end_date)
|
||||
{
|
||||
return page_with_title(event_config_title(), [
|
||||
msg(),
|
||||
form([
|
||||
|
@ -125,5 +128,3 @@ function EventConfig_edit_view($event_name, $event_welcome_msg, $buildup_start_d
|
|||
])
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function Questions_view($open_questions, $answered_questions, $ask_action) {
|
||||
function Questions_view($open_questions, $answered_questions, $ask_action)
|
||||
{
|
||||
foreach ($open_questions as &$question) {
|
||||
$question['actions'] = '<a href="' . page_link_to("user_questions") . '&action=delete&id=' . $question['QID'] . '">' . _("delete") . '</a>';
|
||||
$question['Question'] = str_replace("\n", '<br />', $question['Question']);
|
||||
|
@ -33,5 +34,3 @@ function Questions_view($open_questions, $answered_questions, $ask_action) {
|
|||
], $ask_action)
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -2,19 +2,19 @@
|
|||
use Engelsystem\ShiftsFilterRenderer;
|
||||
use Engelsystem\ShiftCalendarRenderer;
|
||||
|
||||
function Room_view($room, ShiftsFilterRenderer $shiftsFilterRenderer, ShiftCalendarRenderer $shiftCalendarRenderer) {
|
||||
function Room_view($room, ShiftsFilterRenderer $shiftsFilterRenderer, ShiftCalendarRenderer $shiftCalendarRenderer)
|
||||
{
|
||||
return page_with_title(glyph('map-marker') . $room['Name'], [
|
||||
$shiftsFilterRenderer->render(room_link($room)) ,
|
||||
$shiftCalendarRenderer->render()
|
||||
]);
|
||||
}
|
||||
|
||||
function Room_name_render($room) {
|
||||
function Room_name_render($room)
|
||||
{
|
||||
global $privileges;
|
||||
if (in_array('view_rooms', $privileges)) {
|
||||
return '<a href="' . room_link($room) . '">' . glyph('map-marker') . $room['Name'] . '</a>';
|
||||
}
|
||||
return glyph('map-marker') . $room['Name'];
|
||||
}
|
||||
|
||||
?>
|
|
@ -5,8 +5,8 @@ namespace Engelsystem;
|
|||
/**
|
||||
* Represents a single lane in a shifts calendar.
|
||||
*/
|
||||
class ShiftCalendarLane {
|
||||
|
||||
class ShiftCalendarLane
|
||||
{
|
||||
private $firstBlockStartTime;
|
||||
|
||||
private $blockCount;
|
||||
|
@ -15,7 +15,8 @@ class ShiftCalendarLane {
|
|||
|
||||
private $shifts = [];
|
||||
|
||||
public function __construct($header, $firstBlockStartTime, $blockCount) {
|
||||
public function __construct($header, $firstBlockStartTime, $blockCount)
|
||||
{
|
||||
$this->header = $header;
|
||||
$this->firstBlockStartTime = $firstBlockStartTime;
|
||||
$this->blockCount = $blockCount;
|
||||
|
@ -29,7 +30,8 @@ class ShiftCalendarLane {
|
|||
* The shift to add
|
||||
* @return boolean true on success
|
||||
*/
|
||||
public function addShift($shift) {
|
||||
public function addShift($shift)
|
||||
{
|
||||
if ($this->shiftFits($shift)) {
|
||||
$this->shifts[] = $shift;
|
||||
return true;
|
||||
|
@ -43,7 +45,8 @@ class ShiftCalendarLane {
|
|||
* @param Shift $shift
|
||||
* The shift to fit into this lane
|
||||
*/
|
||||
public function shiftFits($newShift) {
|
||||
public function shiftFits($newShift)
|
||||
{
|
||||
foreach ($this->shifts as $laneShift) {
|
||||
if (! ($newShift['start'] >= $laneShift['end'] || $newShift['end'] <= $laneShift['start'])) {
|
||||
return false;
|
||||
|
@ -52,12 +55,13 @@ class ShiftCalendarLane {
|
|||
return true;
|
||||
}
|
||||
|
||||
public function getHeader() {
|
||||
public function getHeader()
|
||||
{
|
||||
return $this->header;
|
||||
}
|
||||
|
||||
public function getShifts() {
|
||||
public function getShifts()
|
||||
{
|
||||
return $this->shifts;
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
namespace Engelsystem;
|
||||
|
||||
class ShiftCalendarRenderer {
|
||||
class ShiftCalendarRenderer
|
||||
{
|
||||
|
||||
/**
|
||||
* 15m * 60s/m = 900s
|
||||
|
@ -39,7 +40,8 @@ class ShiftCalendarRenderer {
|
|||
|
||||
private $shift_entries = null;
|
||||
|
||||
public function __construct($shifts, $needed_angeltypes, $shift_entries, ShiftsFilter $shiftsFilter) {
|
||||
public function __construct($shifts, $needed_angeltypes, $shift_entries, ShiftsFilter $shiftsFilter)
|
||||
{
|
||||
$this->shiftsFilter = $shiftsFilter;
|
||||
$this->firstBlockStartTime = $this->calcFirstBlockStartTime($shifts);
|
||||
$this->lastBlockEndTime = $this->calcLastBlockEndTime($shifts);
|
||||
|
@ -56,7 +58,8 @@ class ShiftCalendarRenderer {
|
|||
*
|
||||
* @return Returns an array that assigns a room_id to an array of ShiftCalendarLane containing the shifts
|
||||
*/
|
||||
private function assignShiftsToLanes($shifts) {
|
||||
private function assignShiftsToLanes($shifts)
|
||||
{
|
||||
// array that assigns a room id to a list of lanes (per room)
|
||||
$lanes = [];
|
||||
|
||||
|
@ -93,15 +96,18 @@ class ShiftCalendarRenderer {
|
|||
return $lanes;
|
||||
}
|
||||
|
||||
public function getFirstBlockStartTime() {
|
||||
public function getFirstBlockStartTime()
|
||||
{
|
||||
return $this->firstBlockStartTime;
|
||||
}
|
||||
|
||||
public function getLastBlockEndTime() {
|
||||
public function getLastBlockEndTime()
|
||||
{
|
||||
return $this->lastBlockEndTime;
|
||||
}
|
||||
|
||||
public function getBlocksPerSlot() {
|
||||
public function getBlocksPerSlot()
|
||||
{
|
||||
if ($this->blocksPerSlot == null) {
|
||||
$this->blocksPerSlot = $this->calcBlocksPerSlot();
|
||||
}
|
||||
|
@ -113,7 +119,8 @@ class ShiftCalendarRenderer {
|
|||
*
|
||||
* @return the generated html
|
||||
*/
|
||||
public function render() {
|
||||
public function render()
|
||||
{
|
||||
if (count($this->lanes) == 0) {
|
||||
return '';
|
||||
}
|
||||
|
@ -126,7 +133,8 @@ class ShiftCalendarRenderer {
|
|||
/**
|
||||
* Renders the lanes containing the shifts
|
||||
*/
|
||||
private function renderShiftLanes() {
|
||||
private function renderShiftLanes()
|
||||
{
|
||||
$html = "";
|
||||
foreach ($this->lanes as $room_lanes) {
|
||||
foreach ($room_lanes as $lane) {
|
||||
|
@ -143,7 +151,8 @@ class ShiftCalendarRenderer {
|
|||
* @param ShiftCalendarLane $lane
|
||||
* The lane to render
|
||||
*/
|
||||
private function renderLane(ShiftCalendarLane $lane) {
|
||||
private function renderLane(ShiftCalendarLane $lane)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$shift_renderer = new ShiftCalendarShiftRenderer();
|
||||
|
@ -181,7 +190,8 @@ class ShiftCalendarRenderer {
|
|||
* Should time labels be generated?
|
||||
* @return rendered tick html
|
||||
*/
|
||||
private function renderTick($time, $label = false) {
|
||||
private function renderTick($time, $label = false)
|
||||
{
|
||||
if ($time % (24 * 60 * 60) == 23 * 60 * 60) {
|
||||
if (! $label) {
|
||||
return div('tick day');
|
||||
|
@ -203,7 +213,8 @@ class ShiftCalendarRenderer {
|
|||
/**
|
||||
* Renders the left time lane including hour/day ticks
|
||||
*/
|
||||
private function renderTimeLane() {
|
||||
private function renderTimeLane()
|
||||
{
|
||||
$time_slot = [
|
||||
div('header', [
|
||||
_("Time")
|
||||
|
@ -216,7 +227,8 @@ class ShiftCalendarRenderer {
|
|||
return div('lane time', $time_slot);
|
||||
}
|
||||
|
||||
private function calcFirstBlockStartTime($shifts) {
|
||||
private function calcFirstBlockStartTime($shifts)
|
||||
{
|
||||
$start_time = $this->shiftsFilter->getEndTime();
|
||||
foreach ($shifts as $shift) {
|
||||
if ($shift['start'] < $start_time) {
|
||||
|
@ -226,7 +238,8 @@ class ShiftCalendarRenderer {
|
|||
return ShiftCalendarRenderer::SECONDS_PER_ROW * floor(($start_time - ShiftCalendarRenderer::TIME_MARGIN) / ShiftCalendarRenderer::SECONDS_PER_ROW);
|
||||
}
|
||||
|
||||
private function calcLastBlockEndTime($shifts) {
|
||||
private function calcLastBlockEndTime($shifts)
|
||||
{
|
||||
$end_time = $this->shiftsFilter->getStartTime();
|
||||
foreach ($shifts as $shift) {
|
||||
if ($shift['end'] > $end_time) {
|
||||
|
@ -236,14 +249,16 @@ class ShiftCalendarRenderer {
|
|||
return ShiftCalendarRenderer::SECONDS_PER_ROW * ceil(($end_time + ShiftCalendarRenderer::TIME_MARGIN) / ShiftCalendarRenderer::SECONDS_PER_ROW);
|
||||
}
|
||||
|
||||
private function calcBlocksPerSlot() {
|
||||
private function calcBlocksPerSlot()
|
||||
{
|
||||
return ceil(($this->getLastBlockEndTime() - $this->getFirstBlockStartTime()) / ShiftCalendarRenderer::SECONDS_PER_ROW);
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders a legend explaining the shift coloring
|
||||
*/
|
||||
private function renderLegend() {
|
||||
private function renderLegend()
|
||||
{
|
||||
return div('legend', [
|
||||
label(_('Your shift'), 'primary'),
|
||||
label(_('Help needed'), 'danger'),
|
||||
|
@ -253,5 +268,3 @@ class ShiftCalendarRenderer {
|
|||
]);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -5,7 +5,8 @@ namespace Engelsystem;
|
|||
/**
|
||||
* Renders a single shift for the shift calendar
|
||||
*/
|
||||
class ShiftCalendarShiftRenderer {
|
||||
class ShiftCalendarShiftRenderer
|
||||
{
|
||||
|
||||
/**
|
||||
* Renders a shift
|
||||
|
@ -15,7 +16,8 @@ class ShiftCalendarShiftRenderer {
|
|||
* @param User $user
|
||||
* The user who is viewing the shift calendar
|
||||
*/
|
||||
public function render($shift, $needed_angeltypes, $shift_entries, $user) {
|
||||
public function render($shift, $needed_angeltypes, $shift_entries, $user)
|
||||
{
|
||||
$info_text = "";
|
||||
if ($shift['title'] != '') {
|
||||
$info_text = glyph('info-sign') . $shift['title'] . '<br>';
|
||||
|
@ -43,7 +45,8 @@ class ShiftCalendarShiftRenderer {
|
|||
];
|
||||
}
|
||||
|
||||
private function classForSignupState(ShiftSignupState $shiftSignupState) {
|
||||
private function classForSignupState(ShiftSignupState $shiftSignupState)
|
||||
{
|
||||
switch ($shiftSignupState->getState()) {
|
||||
case ShiftSignupState::ADMIN:
|
||||
case ShiftSignupState::OCCUPIED:
|
||||
|
@ -64,7 +67,8 @@ class ShiftCalendarShiftRenderer {
|
|||
}
|
||||
}
|
||||
|
||||
private function renderShiftNeededAngeltypes($shift, $needed_angeltypes, $shift_entries, $user) {
|
||||
private function renderShiftNeededAngeltypes($shift, $needed_angeltypes, $shift_entries, $user)
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
$shift_entries_filtered = [];
|
||||
|
@ -117,7 +121,8 @@ class ShiftCalendarShiftRenderer {
|
|||
* @param User $user
|
||||
* The user who is viewing the shift calendar
|
||||
*/
|
||||
private function renderShiftNeededAngeltype($shift, $shift_entries, $angeltype, $user) {
|
||||
private function renderShiftNeededAngeltype($shift, $shift_entries, $angeltype, $user)
|
||||
{
|
||||
$entry_list = [];
|
||||
foreach ($shift_entries as $entry) {
|
||||
$style = $entry['freeloaded'] ? " text-decoration: line-through;" : '';
|
||||
|
@ -174,7 +179,8 @@ class ShiftCalendarShiftRenderer {
|
|||
* @param Shift $shift
|
||||
* The shift
|
||||
*/
|
||||
private function renderShiftHead($shift) {
|
||||
private function renderShiftHead($shift)
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
$header_buttons = "";
|
||||
|
@ -191,5 +197,3 @@ class ShiftCalendarShiftRenderer {
|
|||
]);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -11,7 +11,8 @@
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
function ShiftEntry_edit_view($angel, $date, $location, $title, $type, $comment, $freeloaded, $freeload_comment, $user_admin_shifts = false) {
|
||||
function ShiftEntry_edit_view($angel, $date, $location, $title, $type, $comment, $freeloaded, $freeload_comment, $user_admin_shifts = false)
|
||||
{
|
||||
$freeload_form = [];
|
||||
if ($user_admin_shifts) {
|
||||
$freeload_form = [
|
||||
|
@ -33,5 +34,3 @@ function ShiftEntry_edit_view($angel, $date, $location, $title, $type, $comment,
|
|||
])
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function ShiftType_name_render($shifttype) {
|
||||
function ShiftType_name_render($shifttype)
|
||||
{
|
||||
global $privileges;
|
||||
if (in_array('shifttypes', $privileges)) {
|
||||
return '<a href="' . shifttype_link($shifttype) . '">' . $shifttype['name'] . '</a>';
|
||||
|
@ -8,7 +9,8 @@ function ShiftType_name_render($shifttype) {
|
|||
return $shifttype['name'];
|
||||
}
|
||||
|
||||
function ShiftType_delete_view($shifttype) {
|
||||
function ShiftType_delete_view($shifttype)
|
||||
{
|
||||
return page_with_title(sprintf(_("Delete shifttype %s"), $shifttype['name']), [
|
||||
info(sprintf(_("Do you want to delete shifttype %s?"), $shifttype['name']), true),
|
||||
buttons([
|
||||
|
@ -18,7 +20,8 @@ function ShiftType_delete_view($shifttype) {
|
|||
]);
|
||||
}
|
||||
|
||||
function ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id) {
|
||||
function ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id)
|
||||
{
|
||||
$angeltypes_select = [
|
||||
'' => _('All')
|
||||
];
|
||||
|
@ -41,7 +44,8 @@ function ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $s
|
|||
]);
|
||||
}
|
||||
|
||||
function ShiftType_view($shifttype, $angeltype) {
|
||||
function ShiftType_view($shifttype, $angeltype)
|
||||
{
|
||||
$parsedown = new Parsedown();
|
||||
$title = $shifttype['name'];
|
||||
if ($angeltype) {
|
||||
|
@ -60,7 +64,8 @@ function ShiftType_view($shifttype, $angeltype) {
|
|||
]);
|
||||
}
|
||||
|
||||
function ShiftTypes_list_view($shifttypes) {
|
||||
function ShiftTypes_list_view($shifttypes)
|
||||
{
|
||||
foreach ($shifttypes as &$shifttype) {
|
||||
$shifttype['name'] = '<a href="' . page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype['id'] . '">' . $shifttype['name'] . '</a>';
|
||||
$shifttype['actions'] = table_buttons([
|
||||
|
@ -80,5 +85,3 @@ function ShiftTypes_list_view($shifttypes) {
|
|||
], $shifttypes)
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
namespace Engelsystem;
|
||||
|
||||
class ShiftsFilterRenderer {
|
||||
class ShiftsFilterRenderer
|
||||
{
|
||||
|
||||
/**
|
||||
* The shiftFilter to render.
|
||||
|
@ -26,7 +27,8 @@ class ShiftsFilterRenderer {
|
|||
*/
|
||||
private $days = [];
|
||||
|
||||
public function __construct(ShiftsFilter $shiftsFilter) {
|
||||
public function __construct(ShiftsFilter $shiftsFilter)
|
||||
{
|
||||
$this->shiftsFilter = $shiftsFilter;
|
||||
}
|
||||
|
||||
|
@ -35,7 +37,8 @@ class ShiftsFilterRenderer {
|
|||
*
|
||||
* @return Generated HTML
|
||||
*/
|
||||
public function render($link_base) {
|
||||
public function render($link_base)
|
||||
{
|
||||
$toolbar = [];
|
||||
if ($this->daySelectionEnabled && ! empty($this->days)) {
|
||||
$selected_day = date("Y-m-d", $this->shiftsFilter->getStartTime());
|
||||
|
@ -53,7 +56,8 @@ class ShiftsFilterRenderer {
|
|||
/**
|
||||
* Should the filter display a day selection.
|
||||
*/
|
||||
public function enableDaySelection($days) {
|
||||
public function enableDaySelection($days)
|
||||
{
|
||||
$this->daySelectionEnabled = true;
|
||||
$this->days = $days;
|
||||
}
|
||||
|
@ -61,9 +65,8 @@ class ShiftsFilterRenderer {
|
|||
/**
|
||||
* Should the filter display a day selection.
|
||||
*/
|
||||
public function isDaySelectionEnabled() {
|
||||
public function isDaySelectionEnabled()
|
||||
{
|
||||
return $this->daySelectionEnabled;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -1,7 +1,8 @@
|
|||
<?php
|
||||
use Engelsystem\ShiftSignupState;
|
||||
|
||||
function Shift_editor_info_render($shift) {
|
||||
function Shift_editor_info_render($shift)
|
||||
{
|
||||
$info = [];
|
||||
if ($shift['created_by_user_id'] != null) {
|
||||
$info[] = sprintf(glyph('plus') . _("created at %s by %s"), date('Y-m-d H:i', $shift['created_at_timestamp']), User_Nick_render(User($shift['created_by_user_id'])));
|
||||
|
@ -12,7 +13,8 @@ function Shift_editor_info_render($shift) {
|
|||
return join('<br />', $info);
|
||||
}
|
||||
|
||||
function Shift_signup_button_render($shift, $angeltype, $user_angeltype = null) {
|
||||
function Shift_signup_button_render($shift, $angeltype, $user_angeltype = null)
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ($user_angeltype == null) {
|
||||
|
@ -27,7 +29,8 @@ function Shift_signup_button_render($shift, $angeltype, $user_angeltype = null)
|
|||
return '';
|
||||
}
|
||||
|
||||
function Shift_view($shift, $shifttype, $room, $angeltypes_source, ShiftSignupState $shift_signup_state) {
|
||||
function Shift_view($shift, $shifttype, $room, $angeltypes_source, ShiftSignupState $shift_signup_state)
|
||||
{
|
||||
global $privileges;
|
||||
|
||||
$shift_admin = in_array('admin_shifts', $privileges);
|
||||
|
@ -97,7 +100,8 @@ function Shift_view($shift, $shifttype, $room, $angeltypes_source, ShiftSignupSt
|
|||
]);
|
||||
}
|
||||
|
||||
function Shift_view_render_needed_angeltype($needed_angeltype, $angeltypes, $shift, $user_shift_admin) {
|
||||
function Shift_view_render_needed_angeltype($needed_angeltype, $angeltypes, $shift, $user_shift_admin)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$angeltype = $angeltypes[$needed_angeltype['TID']];
|
||||
|
@ -134,7 +138,8 @@ function Shift_view_render_needed_angeltype($needed_angeltype, $angeltypes, $shi
|
|||
return $needed_angels;
|
||||
}
|
||||
|
||||
function Shift_view_render_shift_entry($shift_entry, $user_shift_admin, $angeltype_supporter) {
|
||||
function Shift_view_render_shift_entry($shift_entry, $user_shift_admin, $angeltype_supporter)
|
||||
{
|
||||
$entry = User_Nick_render(User($shift_entry['UID']));
|
||||
if ($shift_entry['freeloaded']) {
|
||||
$entry = '<strike>' . $entry . '</strike>';
|
||||
|
@ -155,9 +160,9 @@ function Shift_view_render_shift_entry($shift_entry, $user_shift_admin, $angelty
|
|||
*
|
||||
* @param Shift $shift
|
||||
*/
|
||||
function shift_length($shift) {
|
||||
function shift_length($shift)
|
||||
{
|
||||
$length = floor(($shift['end'] - $shift['start']) / (60 * 60)) . ":";
|
||||
$length .= str_pad((($shift['end'] - $shift['start']) % (60 * 60)) / 60, 2, "0", STR_PAD_LEFT) . "h";
|
||||
return $length;
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
function UserAngelType_update_view($user_angeltype, $user, $angeltype, $supporter) {
|
||||
function UserAngelType_update_view($user_angeltype, $user, $angeltype, $supporter)
|
||||
{
|
||||
return page_with_title($supporter ? _("Add supporter rights") : _("Remove supporter rights"), [
|
||||
msg(),
|
||||
info(sprintf($supporter ? _("Do you really want to add supporter rights for %s to %s?") : _("Do you really want to remove supporter rights for %s from %s?"), $angeltype['name'], User_Nick_render($user)), true),
|
||||
|
@ -11,7 +12,8 @@ function UserAngelType_update_view($user_angeltype, $user, $angeltype, $supporte
|
|||
]);
|
||||
}
|
||||
|
||||
function UserAngelTypes_delete_all_view($angeltype) {
|
||||
function UserAngelTypes_delete_all_view($angeltype)
|
||||
{
|
||||
return page_with_title(_("Deny all users"), [
|
||||
msg(),
|
||||
info(sprintf(_("Do you really want to deny all users for %s?"), $angeltype['name']), true),
|
||||
|
@ -22,7 +24,8 @@ function UserAngelTypes_delete_all_view($angeltype) {
|
|||
]);
|
||||
}
|
||||
|
||||
function UserAngelTypes_confirm_all_view($angeltype) {
|
||||
function UserAngelTypes_confirm_all_view($angeltype)
|
||||
{
|
||||
return page_with_title(_("Confirm all users"), [
|
||||
msg(),
|
||||
info(sprintf(_("Do you really want to confirm all users for %s?"), $angeltype['name']), true),
|
||||
|
@ -33,7 +36,8 @@ function UserAngelTypes_confirm_all_view($angeltype) {
|
|||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_confirm_view($user_angeltype, $user, $angeltype) {
|
||||
function UserAngelType_confirm_view($user_angeltype, $user, $angeltype)
|
||||
{
|
||||
return page_with_title(_("Confirm angeltype for user"), [
|
||||
msg(),
|
||||
info(sprintf(_("Do you really want to confirm %s for %s?"), User_Nick_render($user), $angeltype['name']), true),
|
||||
|
@ -44,7 +48,8 @@ function UserAngelType_confirm_view($user_angeltype, $user, $angeltype) {
|
|||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_delete_view($user_angeltype, $user, $angeltype) {
|
||||
function UserAngelType_delete_view($user_angeltype, $user, $angeltype)
|
||||
{
|
||||
return page_with_title(_("Remove angeltype"), [
|
||||
msg(),
|
||||
info(sprintf(_("Do you really want to delete %s from %s?"), User_Nick_render($user), $angeltype['name']), true),
|
||||
|
@ -55,7 +60,8 @@ function UserAngelType_delete_view($user_angeltype, $user, $angeltype) {
|
|||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_add_view($angeltype, $users_source, $user_id) {
|
||||
function UserAngelType_add_view($angeltype, $users_source, $user_id)
|
||||
{
|
||||
$users = [];
|
||||
foreach ($users_source as $user_source) {
|
||||
$users[$user_source['UID']] = User_Nick_render($user_source);
|
||||
|
@ -74,7 +80,8 @@ function UserAngelType_add_view($angeltype, $users_source, $user_id) {
|
|||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_join_view($user, $angeltype) {
|
||||
function UserAngelType_join_view($user, $angeltype)
|
||||
{
|
||||
return page_with_title(sprintf(_("Become a %s"), $angeltype['name']), [
|
||||
msg(),
|
||||
info(sprintf(_("Do you really want to add %s to %s?"), User_Nick_render($user), $angeltype['name']), true),
|
||||
|
@ -84,5 +91,3 @@ function UserAngelType_join_view($user, $angeltype) {
|
|||
])
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -11,7 +11,8 @@
|
|||
* The user driver license
|
||||
* @return string
|
||||
*/
|
||||
function UserDriverLicense_edit_view($user_source, $wants_to_drive, $user_driver_license) {
|
||||
function UserDriverLicense_edit_view($user_source, $wants_to_drive, $user_driver_license)
|
||||
{
|
||||
return page_with_title(sprintf(_("Edit %s driving license information"), User_Nick_render($user_source)), [
|
||||
buttons([
|
||||
button(user_link($user_source), _("Back to profile"), 'back')
|
||||
|
@ -52,5 +53,3 @@ function UserDriverLicense_edit_view($user_source, $wants_to_drive, $user_driver
|
|||
</script>'
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace Engelsystem;
|
||||
|
||||
class UserHintsRenderer {
|
||||
|
||||
class UserHintsRenderer
|
||||
{
|
||||
private $hints = [];
|
||||
|
||||
private $important = false;
|
||||
|
@ -11,7 +11,8 @@ class UserHintsRenderer {
|
|||
/**
|
||||
* Render the added hints to a popover for the toolbar.
|
||||
*/
|
||||
public function render() {
|
||||
public function render()
|
||||
{
|
||||
if (count($this->hints) > 0) {
|
||||
$hint_class = $this->important ? 'danger' : 'info';
|
||||
$glyphicon = $this->important ? 'warning-sign' : 'info-sign';
|
||||
|
@ -30,7 +31,8 @@ class UserHintsRenderer {
|
|||
* @param boolean $important
|
||||
* Is the hint important?
|
||||
*/
|
||||
public function addHint($hint, $important = false) {
|
||||
public function addHint($hint, $important = false)
|
||||
{
|
||||
if ($hint != null && $hint != '') {
|
||||
if ($important) {
|
||||
$this->important = true;
|
||||
|
@ -44,16 +46,16 @@ class UserHintsRenderer {
|
|||
/**
|
||||
* Get all hints.
|
||||
*/
|
||||
public function getHints() {
|
||||
public function getHints()
|
||||
{
|
||||
return $this->hints;
|
||||
}
|
||||
|
||||
/**
|
||||
* Are there important hints? This leads to a more intensive icon.
|
||||
*/
|
||||
public function isImportant() {
|
||||
public function isImportant()
|
||||
{
|
||||
return $this->important;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
|
@ -29,7 +29,8 @@ $tshirt_sizes = [
|
|||
* @param array<String> $themes
|
||||
* Available themes
|
||||
*/
|
||||
function User_settings_view($user_source, $locales, $themes, $buildup_start_date, $teardown_end_date, $enable_tshirt_size, $tshirt_sizes) {
|
||||
function User_settings_view($user_source, $locales, $themes, $buildup_start_date, $teardown_end_date, $enable_tshirt_size, $tshirt_sizes)
|
||||
{
|
||||
return page_with_title(settings_title(), [
|
||||
msg(),
|
||||
div('row', [
|
||||
|
@ -82,7 +83,8 @@ function User_settings_view($user_source, $locales, $themes, $buildup_start_date
|
|||
/**
|
||||
* Displays the welcome message to the user and shows a login form.
|
||||
*/
|
||||
function User_registration_success_view($event_welcome_message) {
|
||||
function User_registration_success_view($event_welcome_message)
|
||||
{
|
||||
$parsedown = new Parsedown();
|
||||
$event_welcome_message = $parsedown->text($event_welcome_message);
|
||||
return page_with_title(_("Registration successful"), [
|
||||
|
@ -117,7 +119,8 @@ function User_registration_success_view($event_welcome_message) {
|
|||
/**
|
||||
* Gui for deleting user with password field.
|
||||
*/
|
||||
function User_delete_view($user) {
|
||||
function User_delete_view($user)
|
||||
{
|
||||
return page_with_title(sprintf(_("Delete %s"), User_Nick_render($user)), [
|
||||
msg(),
|
||||
buttons([
|
||||
|
@ -134,7 +137,8 @@ function User_delete_view($user) {
|
|||
/**
|
||||
* View for editing the number of given vouchers
|
||||
*/
|
||||
function User_edit_vouchers_view($user) {
|
||||
function User_edit_vouchers_view($user)
|
||||
{
|
||||
return page_with_title(sprintf(_("%s's vouchers"), User_Nick_render($user)), [
|
||||
msg(),
|
||||
buttons([
|
||||
|
@ -148,7 +152,8 @@ function User_edit_vouchers_view($user) {
|
|||
]);
|
||||
}
|
||||
|
||||
function Users_view($users, $order_by, $arrived_count, $active_count, $force_active_count, $freeloads_count, $tshirts_count, $voucher_count) {
|
||||
function Users_view($users, $order_by, $arrived_count, $active_count, $force_active_count, $freeloads_count, $tshirts_count, $voucher_count)
|
||||
{
|
||||
foreach ($users as &$user) {
|
||||
$user['Nick'] = User_Nick_render($user);
|
||||
$user['Gekommen'] = glyph_bool($user['Gekommen']);
|
||||
|
@ -195,11 +200,13 @@ function Users_view($users, $order_by, $arrived_count, $active_count, $force_act
|
|||
]);
|
||||
}
|
||||
|
||||
function Users_table_header_link($column, $label, $order_by) {
|
||||
function Users_table_header_link($column, $label, $order_by)
|
||||
{
|
||||
return '<a href="' . page_link_to('users') . '&OrderBy=' . $column . '">' . $label . ($order_by == $column ? ' <span class="caret"></span>' : '') . '</a>';
|
||||
}
|
||||
|
||||
function User_shift_state_render($user) {
|
||||
function User_shift_state_render($user)
|
||||
{
|
||||
$upcoming_shifts = ShiftEntries_upcoming_for_user($user);
|
||||
if ($upcoming_shifts === false) {
|
||||
return false;
|
||||
|
@ -223,7 +230,8 @@ function User_shift_state_render($user) {
|
|||
return '<span class="text-danger moment-countdown" data-timestamp="' . $upcoming_shifts[0]['end'] . '">' . _("Shift ends %c") . '</span>';
|
||||
}
|
||||
|
||||
function User_view_shiftentries($needed_angel_type) {
|
||||
function User_view_shiftentries($needed_angel_type)
|
||||
{
|
||||
$shift_info = '<br><b>' . $needed_angel_type['name'] . ':</b> ';
|
||||
|
||||
$shift_entries = [];
|
||||
|
@ -243,7 +251,8 @@ function User_view_shiftentries($needed_angel_type) {
|
|||
/**
|
||||
* Helper that renders a shift line for user view
|
||||
*/
|
||||
function User_view_myshift($shift, $user_source, $its_me) {
|
||||
function User_view_myshift($shift, $user_source, $its_me)
|
||||
{
|
||||
global $LETZTES_AUSTRAGEN, $privileges;
|
||||
|
||||
$shift_info = '<a href="' . shift_link($shift) . '">' . $shift['name'] . '</a>';
|
||||
|
@ -287,7 +296,8 @@ function User_view_myshift($shift, $user_source, $its_me) {
|
|||
/**
|
||||
* Helper that prepares the shift table for user view
|
||||
*/
|
||||
function User_view_myshifts($shifts, $user_source, $its_me) {
|
||||
function User_view_myshifts($shifts, $user_source, $its_me)
|
||||
{
|
||||
$myshifts_table = [];
|
||||
$timesum = 0;
|
||||
foreach ($shifts as $shift) {
|
||||
|
@ -316,7 +326,8 @@ function User_view_myshifts($shifts, $user_source, $its_me) {
|
|||
/**
|
||||
* Renders view for a single user
|
||||
*/
|
||||
function User_view($user_source, $admin_user_privilege, $freeloader, $user_angeltypes, $user_groups, $shifts, $its_me) {
|
||||
function User_view($user_source, $admin_user_privilege, $freeloader, $user_angeltypes, $user_groups, $shifts, $its_me)
|
||||
{
|
||||
$user_name = htmlspecialchars($user_source['Vorname']) . " " . htmlspecialchars($user_source['Name']);
|
||||
$myshifts_table = User_view_myshifts($shifts, $user_source, $its_me);
|
||||
|
||||
|
@ -378,7 +389,8 @@ function User_view($user_source, $admin_user_privilege, $freeloader, $user_angel
|
|||
/**
|
||||
* View for password recovery step 1: E-Mail
|
||||
*/
|
||||
function User_password_recovery_view() {
|
||||
function User_password_recovery_view()
|
||||
{
|
||||
return page_with_title(user_password_recovery_title(), [
|
||||
msg(),
|
||||
_("We will send you an e-mail with a password recovery link. Please use the email address you used for registration."),
|
||||
|
@ -392,7 +404,8 @@ function User_password_recovery_view() {
|
|||
/**
|
||||
* View for password recovery step 2: New password
|
||||
*/
|
||||
function User_password_set_view() {
|
||||
function User_password_set_view()
|
||||
{
|
||||
return page_with_title(user_password_recovery_title(), [
|
||||
msg(),
|
||||
_("Please enter a new password."),
|
||||
|
@ -404,7 +417,8 @@ function User_password_set_view() {
|
|||
]);
|
||||
}
|
||||
|
||||
function User_angeltypes_render($user_angeltypes) {
|
||||
function User_angeltypes_render($user_angeltypes)
|
||||
{
|
||||
$output = [];
|
||||
foreach ($user_angeltypes as $angeltype) {
|
||||
$class = "";
|
||||
|
@ -422,7 +436,8 @@ function User_angeltypes_render($user_angeltypes) {
|
|||
return join('<br />', $output);
|
||||
}
|
||||
|
||||
function User_groups_render($user_groups) {
|
||||
function User_groups_render($user_groups)
|
||||
{
|
||||
$output = [];
|
||||
foreach ($user_groups as $group) {
|
||||
$output[] = substr($group['Name'], 2);
|
||||
|
@ -436,11 +451,13 @@ function User_groups_render($user_groups) {
|
|||
* @param User $user_source
|
||||
* @return string
|
||||
*/
|
||||
function User_Nick_render($user_source) {
|
||||
function User_Nick_render($user_source)
|
||||
{
|
||||
return '<a class="' . ($user_source['Gekommen'] ? '' : 'text-muted') . '" href="' . page_link_to('users') . '&action=view&user_id=' . $user_source['UID'] . '"><span class="icon-icon_angel"></span> ' . htmlspecialchars($user_source['Nick']) . '</a>';
|
||||
}
|
||||
|
||||
function render_user_departure_date_hint() {
|
||||
function render_user_departure_date_hint()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if (! isset($user['planned_departure_date']) || $user['planned_departure_date'] == null) {
|
||||
|
@ -450,7 +467,8 @@ function render_user_departure_date_hint() {
|
|||
return null;
|
||||
}
|
||||
|
||||
function render_user_freeloader_hint() {
|
||||
function render_user_freeloader_hint()
|
||||
{
|
||||
global $user, $max_freeloadable_shifts;
|
||||
|
||||
if (User_is_freeloader($user)) {
|
||||
|
@ -461,7 +479,8 @@ function render_user_freeloader_hint() {
|
|||
}
|
||||
|
||||
// Hinweis für Engel, die noch nicht angekommen sind
|
||||
function render_user_arrived_hint() {
|
||||
function render_user_arrived_hint()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ($user['Gekommen'] == 0) {
|
||||
|
@ -471,7 +490,8 @@ function render_user_arrived_hint() {
|
|||
return null;
|
||||
}
|
||||
|
||||
function render_user_tshirt_hint() {
|
||||
function render_user_tshirt_hint()
|
||||
{
|
||||
global $enable_tshirt_size, $user;
|
||||
|
||||
if ($enable_tshirt_size && $user['Size'] == "") {
|
||||
|
@ -481,7 +501,8 @@ function render_user_tshirt_hint() {
|
|||
return null;
|
||||
}
|
||||
|
||||
function render_user_dect_hint() {
|
||||
function render_user_dect_hint()
|
||||
{
|
||||
global $user;
|
||||
|
||||
if ($user['DECT'] == "") {
|
||||
|
@ -490,5 +511,3 @@ function render_user_dect_hint() {
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -174,5 +174,3 @@ echo template_render(__DIR__ . '/../templates/layout.html', [
|
|||
'locale' => locale(),
|
||||
'event_info' => EventConfig_info($event_config) . '<br />'
|
||||
]);
|
||||
|
||||
?>
|
||||
|
|
|
@ -2,13 +2,15 @@
|
|||
|
||||
namespace Engelsystem\Test;
|
||||
|
||||
class LogEntriesModelTest extends \PHPUnit_Framework_TestCase {
|
||||
|
||||
public function create_LogEntry() {
|
||||
class LogEntriesModelTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function create_LogEntry()
|
||||
{
|
||||
LogEntry_create('test', 'test');
|
||||
}
|
||||
|
||||
public function test_LogEntry_create() {
|
||||
public function test_LogEntry_create()
|
||||
{
|
||||
$count = count(LogEntries());
|
||||
$this->assertNotFalse(LogEntry_create('test', 'test_LogEntry_create'));
|
||||
|
||||
|
@ -16,7 +18,8 @@ class LogEntriesModelTest extends \PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals(count(LogEntries()), $count + 1);
|
||||
}
|
||||
|
||||
public function test_LogEntries_clear_all() {
|
||||
public function test_LogEntries_clear_all()
|
||||
{
|
||||
$this->create_LogEntry();
|
||||
$this->assertTrue(count(LogEntries()) > 0);
|
||||
$this->assertNotFalse(LogEntries_clear_all());
|
||||
|
@ -26,9 +29,8 @@ class LogEntriesModelTest extends \PHPUnit_Framework_TestCase {
|
|||
/**
|
||||
* @after
|
||||
*/
|
||||
public function teardown() {
|
||||
public function teardown()
|
||||
{
|
||||
LogEntries_clear_all();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -2,15 +2,17 @@
|
|||
|
||||
namespace Engelsystem\Test;
|
||||
|
||||
class RoomModelTest extends \PHPUnit_Framework_TestCase {
|
||||
|
||||
class RoomModelTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $room_id = null;
|
||||
|
||||
public function create_Room() {
|
||||
public function create_Room()
|
||||
{
|
||||
$this->room_id = Room_create('test', false, true, '');
|
||||
}
|
||||
|
||||
public function test_Room() {
|
||||
public function test_Room()
|
||||
{
|
||||
$this->create_Room();
|
||||
|
||||
$room = Room($this->room_id);
|
||||
|
@ -25,11 +27,10 @@ class RoomModelTest extends \PHPUnit_Framework_TestCase {
|
|||
/**
|
||||
* @after
|
||||
*/
|
||||
public function teardown() {
|
||||
public function teardown()
|
||||
{
|
||||
if ($this->room_id != null) {
|
||||
Room_delete($this->room_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue