prohibit inline control structures on model and view
This commit is contained in:
parent
91dafb19ec
commit
e965f8d041
|
@ -47,8 +47,9 @@ function AngelType_create($name, $restricted, $description, $requires_driver_lic
|
|||
`restricted`=" . sql_bool($restricted) . ",
|
||||
`description`='" . sql_escape($description) . "',
|
||||
`requires_driver_license`=" . sql_bool($requires_driver_license));
|
||||
if ($result === false)
|
||||
if ($result === false) {
|
||||
return false;
|
||||
}
|
||||
return sql_id();
|
||||
}
|
||||
|
||||
|
@ -61,13 +62,14 @@ function AngelType_create($name, $restricted, $description, $requires_driver_lic
|
|||
*/
|
||||
function AngelType_validate_name($name, $angeltype) {
|
||||
$name = strip_item($name);
|
||||
if ($name == "")
|
||||
return array(
|
||||
if ($name == "") {
|
||||
return [
|
||||
false,
|
||||
$name
|
||||
);
|
||||
if (isset($angeltype) && isset($angeltype['id']))
|
||||
return array(
|
||||
];
|
||||
}
|
||||
if (isset($angeltype) && isset($angeltype['id'])) {
|
||||
return [
|
||||
sql_num_query("
|
||||
SELECT *
|
||||
FROM `AngelTypes`
|
||||
|
@ -75,16 +77,16 @@ function AngelType_validate_name($name, $angeltype) {
|
|||
AND NOT `id`='" . sql_escape($angeltype['id']) . "'
|
||||
LIMIT 1") == 0,
|
||||
$name
|
||||
);
|
||||
else
|
||||
return array(
|
||||
];
|
||||
}
|
||||
return [
|
||||
sql_num_query("
|
||||
SELECT `id`
|
||||
FROM `AngelTypes`
|
||||
WHERE `name`='" . sql_escape($name) . "'
|
||||
LIMIT 1") == 0,
|
||||
$name
|
||||
);
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -119,10 +121,12 @@ function AngelTypes() {
|
|||
*/
|
||||
function AngelType_ids() {
|
||||
$angelType_source = sql_select("SELECT `id` FROM `AngelTypes`");
|
||||
if ($angelType_source === false)
|
||||
if ($angelType_source === false) {
|
||||
return false;
|
||||
if (count($angelType_source) > 0)
|
||||
}
|
||||
if (count($angelType_source) > 0) {
|
||||
return $angelType_source;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -134,10 +138,12 @@ function AngelType_ids() {
|
|||
*/
|
||||
function AngelType($id) {
|
||||
$angelType_source = sql_select("SELECT * FROM `AngelTypes` WHERE `id`='" . sql_escape($id) . "' LIMIT 1");
|
||||
if ($angelType_source === false)
|
||||
if ($angelType_source === false) {
|
||||
return false;
|
||||
if (count($angelType_source) > 0)
|
||||
}
|
||||
if (count($angelType_source) > 0) {
|
||||
return $angelType_source[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,10 +5,12 @@
|
|||
*/
|
||||
function EventConfig() {
|
||||
$event_config = sql_select("SELECT * FROM `EventConfig` LIMIT 1");
|
||||
if ($event_config === false)
|
||||
if ($event_config === false) {
|
||||
return false;
|
||||
if (count($event_config) > 0)
|
||||
}
|
||||
if (count($event_config) > 0) {
|
||||
return $event_config[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,10 +15,12 @@ function Message_ids() {
|
|||
*/
|
||||
function Message($id) {
|
||||
$message_source = sql_select("SELECT * FROM `Messages` WHERE `id`='" . sql_escape($id) . "' LIMIT 1");
|
||||
if ($message_source === false)
|
||||
if ($message_source === false) {
|
||||
return false;
|
||||
if (count($message_source) > 0)
|
||||
}
|
||||
if (count($message_source) > 0) {
|
||||
return $message_source[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,8 +14,9 @@ function NeededAngelTypes_by_shift($shiftId) {
|
|||
AND `count` > 0
|
||||
ORDER BY `room_id` DESC
|
||||
");
|
||||
if ($needed_angeltypes_source === false)
|
||||
if ($needed_angeltypes_source === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Use settings from room
|
||||
if (count($needed_angeltypes_source) == 0) {
|
||||
|
@ -28,15 +29,17 @@ function NeededAngelTypes_by_shift($shiftId) {
|
|||
AND `count` > 0
|
||||
ORDER BY `room_id` DESC
|
||||
");
|
||||
if ($needed_angeltypes_source === false)
|
||||
if ($needed_angeltypes_source === false) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$needed_angeltypes = array();
|
||||
$needed_angeltypes = [];
|
||||
foreach ($needed_angeltypes_source as $angeltype) {
|
||||
$shift_entries = ShiftEntries_by_shift_and_angeltype($shiftId, $angeltype['angel_type_id']);
|
||||
if ($shift_entries === false)
|
||||
if ($shift_entries === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$angeltype['taken'] = count($shift_entries);
|
||||
$needed_angeltypes[] = $angeltype;
|
||||
|
|
|
@ -25,8 +25,9 @@ function Room_create($name, $from_frab, $public) {
|
|||
`FromPentabarf`='" . sql_escape($from_frab ? 'Y' : '') . "',
|
||||
`show`='" . sql_escape($public ? 'Y' : '') . "',
|
||||
`Number`=0");
|
||||
if ($result === false)
|
||||
if ($result === false) {
|
||||
return false;
|
||||
}
|
||||
return sql_id();
|
||||
}
|
||||
|
||||
|
@ -38,10 +39,12 @@ function Room_create($name, $from_frab, $public) {
|
|||
function Room($id) {
|
||||
$room_source = sql_select("SELECT * FROM `Room` WHERE `RID`='" . sql_escape($id) . "' AND `show` = 'Y'");
|
||||
|
||||
if ($room_source === false)
|
||||
if ($room_source === false) {
|
||||
return false;
|
||||
if (count($room_source) > 0)
|
||||
}
|
||||
if (count($room_source) > 0) {
|
||||
return $room_source[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -51,10 +51,12 @@ function ShiftEntry_update($shift_entry) {
|
|||
*/
|
||||
function ShiftEntry($shift_entry_id) {
|
||||
$shift_entry = sql_select("SELECT * FROM `ShiftEntry` WHERE `id`='" . sql_escape($shift_entry_id) . "'");
|
||||
if ($shift_entry === false)
|
||||
if ($shift_entry === false) {
|
||||
return false;
|
||||
if (count($shift_entry) == 0)
|
||||
}
|
||||
if (count($shift_entry) == 0) {
|
||||
return null;
|
||||
}
|
||||
return $shift_entry[0];
|
||||
}
|
||||
|
||||
|
|
|
@ -37,8 +37,9 @@ function ShiftType_create($name, $angeltype_id, $description) {
|
|||
`name`='" . sql_escape($name) . "',
|
||||
`angeltype_id`=" . sql_null($angeltype_id) . ",
|
||||
`description`='" . sql_escape($description) . "'");
|
||||
if ($result === false)
|
||||
if ($result === false) {
|
||||
return false;
|
||||
}
|
||||
return sql_id();
|
||||
}
|
||||
|
||||
|
@ -49,10 +50,12 @@ function ShiftType_create($name, $angeltype_id, $description) {
|
|||
*/
|
||||
function ShiftType($shifttype_id) {
|
||||
$shifttype = sql_select("SELECT * FROM `ShiftTypes` WHERE `id`='" . sql_escape($shifttype_id) . "'");
|
||||
if ($shifttype === false)
|
||||
if ($shifttype === false) {
|
||||
return false;
|
||||
if ($shifttype == null)
|
||||
}
|
||||
if ($shifttype == null) {
|
||||
return null;
|
||||
}
|
||||
return $shifttype[0];
|
||||
}
|
||||
|
||||
|
|
|
@ -6,10 +6,13 @@
|
|||
* @param array<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']))
|
||||
foreach ($shifts as $other_shift) {
|
||||
if ($shift['SID'] != $other_shift['SID']) {
|
||||
if (! ($shift['start'] >= $other_shift['end'] || $shift['end'] <= $other_shift['start'])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -25,39 +28,44 @@ function Shift_signup_allowed($shift, $angeltype, $user_angeltype = null, $user_
|
|||
|
||||
if ($user_shifts == null) {
|
||||
$user_shifts = Shifts_by_user($user);
|
||||
if ($user_shifts === false)
|
||||
if ($user_shifts === false) {
|
||||
engelsystem_error('Unable to load users shifts.');
|
||||
}
|
||||
}
|
||||
|
||||
$collides = Shift_collides($shift, $user_shifts);
|
||||
|
||||
if ($user_angeltype == null) {
|
||||
$user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype);
|
||||
if ($user_angeltype === false)
|
||||
if ($user_angeltype === false) {
|
||||
engelsystem_error('Unable to load user angeltype.');
|
||||
}
|
||||
}
|
||||
|
||||
$signed_up = false;
|
||||
foreach ($user_shifts as $user_shift)
|
||||
foreach ($user_shifts as $user_shift) {
|
||||
if ($user_shift['SID'] == $shift['SID']) {
|
||||
$signed_up = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$needed_angeltypes = NeededAngelTypes_by_shift($shift['SID']);
|
||||
if ($needed_angeltypes === false)
|
||||
if ($needed_angeltypes === false) {
|
||||
engelsystem_error('Unable to load needed angel types.');
|
||||
}
|
||||
|
||||
// is the shift still running or alternatively is the user shift admin?
|
||||
$user_may_join_shift = true;
|
||||
|
||||
// you canot join if shift is full
|
||||
foreach ($needed_angeltypes as $needed_angeltype)
|
||||
foreach ($needed_angeltypes as $needed_angeltype) {
|
||||
if ($needed_angeltype['angel_type_id'] == $angeltype['id']) {
|
||||
if ($needed_angeltype['taken'] >= $needed_angeltype['count'])
|
||||
$user_may_join_shift = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// you cannot join if user alread joined a parallel or this shift
|
||||
$user_may_join_shift &= ! $collides;
|
||||
|
@ -69,8 +77,9 @@ function Shift_signup_allowed($shift, $angeltype, $user_angeltype = null, $user_
|
|||
$user_may_join_shift &= $user_angeltype != null;
|
||||
|
||||
// you cannot join if you are not confirmed
|
||||
if ($angeltype['restricted'] == 1 && $user_angeltype != null)
|
||||
if ($angeltype['restricted'] == 1 && $user_angeltype != null) {
|
||||
$user_may_join_shift &= isset($user_angeltype['confirm_user_id']);
|
||||
}
|
||||
|
||||
// you can only join if the shift is in future
|
||||
$user_may_join_shift &= time() < $shift['start'];
|
||||
|
@ -123,10 +132,12 @@ function Shift_update($shift) {
|
|||
*/
|
||||
function Shift_update_by_psid($shift) {
|
||||
$shift_source = sql_select("SELECT `SID` FROM `Shifts` WHERE `PSID`=" . $shift['PSID']);
|
||||
if ($shift_source === false)
|
||||
if ($shift_source === false) {
|
||||
return false;
|
||||
if (count($shift_source) == 0)
|
||||
}
|
||||
if (count($shift_source) == 0) {
|
||||
return null;
|
||||
}
|
||||
$shift['SID'] = $shift_source[0]['SID'];
|
||||
return Shift_update($shift);
|
||||
}
|
||||
|
@ -148,8 +159,9 @@ function Shift_create($shift) {
|
|||
`PSID`=" . sql_null($shift['PSID']) . ",
|
||||
`created_by_user_id`='" . sql_escape($user['UID']) . "',
|
||||
`created_at_timestamp`=" . time());
|
||||
if ($result === false)
|
||||
if ($result === false) {
|
||||
return false;
|
||||
}
|
||||
return sql_id();
|
||||
}
|
||||
|
||||
|
@ -205,8 +217,9 @@ function Shifts_filtered() {
|
|||
|
||||
// real request
|
||||
$shifts_source = sql_select("SELECT `SID` FROM `Shifts`" . $filter);
|
||||
if ($shifts_source === false)
|
||||
if ($shifts_source === false) {
|
||||
return false;
|
||||
}
|
||||
if (count($shifts_source) > 0) {
|
||||
return $shifts_source;
|
||||
}
|
||||
|
@ -227,8 +240,9 @@ function Shift($id) {
|
|||
WHERE `SID`='" . sql_escape($id) . "'");
|
||||
$shiftsEntry_source = sql_select("SELECT `id`, `TID` , `UID` , `freeloaded` FROM `ShiftEntry` WHERE `SID`='" . sql_escape($id) . "'");
|
||||
|
||||
if ($shifts_source === false)
|
||||
if ($shifts_source === false) {
|
||||
return false;
|
||||
}
|
||||
if (count($shifts_source) > 0) {
|
||||
$result = $shifts_source[0];
|
||||
|
||||
|
@ -260,13 +274,15 @@ function Shifts() {
|
|||
JOIN `ShiftTypes` ON (`ShiftTypes`.`id` = `Shifts`.`shifttype_id`)
|
||||
JOIN `Room` ON `Room`.`RID` = `Shifts`.`RID`
|
||||
");
|
||||
if ($shifts_source === false)
|
||||
if ($shifts_source === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($shifts_source as &$shift) {
|
||||
$needed_angeltypes = NeededAngelTypes_by_shift($shift['SID']);
|
||||
if ($needed_angeltypes === false)
|
||||
if ($needed_angeltypes === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$shift['angeltypes'] = $needed_angeltypes;
|
||||
}
|
||||
|
|
|
@ -133,8 +133,9 @@ function UserAngelType_create($user, $angeltype) {
|
|||
INSERT INTO `UserAngelTypes` SET
|
||||
`user_id`='" . sql_escape($user['UID']) . "',
|
||||
`angeltype_id`='" . sql_escape($angeltype['id']) . "'");
|
||||
if ($result === false)
|
||||
if ($result === false) {
|
||||
return false;
|
||||
}
|
||||
return sql_id();
|
||||
}
|
||||
|
||||
|
@ -149,10 +150,12 @@ function UserAngelType($user_angeltype_id) {
|
|||
FROM `UserAngelTypes`
|
||||
WHERE `id`='" . sql_escape($user_angeltype_id) . "'
|
||||
LIMIT 1");
|
||||
if ($angeltype === false)
|
||||
if ($angeltype === false) {
|
||||
return false;
|
||||
if (count($angeltype) == 0)
|
||||
}
|
||||
if (count($angeltype) == 0) {
|
||||
return null;
|
||||
}
|
||||
return $angeltype[0];
|
||||
}
|
||||
|
||||
|
@ -169,10 +172,12 @@ function UserAngelType_by_User_and_AngelType($user, $angeltype) {
|
|||
WHERE `user_id`='" . sql_escape($user['UID']) . "'
|
||||
AND `angeltype_id`='" . sql_escape($angeltype['id']) . "'
|
||||
LIMIT 1");
|
||||
if ($angeltype === false)
|
||||
if ($angeltype === false) {
|
||||
return false;
|
||||
if (count($angeltype) == 0)
|
||||
}
|
||||
if (count($angeltype) == 0) {
|
||||
return null;
|
||||
}
|
||||
return $angeltype[0];
|
||||
}
|
||||
?>
|
|
@ -6,10 +6,12 @@
|
|||
*/
|
||||
function UserDriverLicense($user_id) {
|
||||
$user_driver_license = sql_select("SELECT * FROM `UserDriverLicenses` WHERE `user_id`='" . sql_escape($user_id) . "'");
|
||||
if ($user_driver_license === false)
|
||||
if ($user_driver_license === false) {
|
||||
return false;
|
||||
if (count($user_driver_license) > 0)
|
||||
}
|
||||
if (count($user_driver_license) > 0) {
|
||||
return $user_driver_license[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -164,10 +164,12 @@ function User_validate_Nick($nick) {
|
|||
*/
|
||||
function User($id) {
|
||||
$user_source = sql_select("SELECT * FROM `User` WHERE `UID`='" . sql_escape($id) . "' LIMIT 1");
|
||||
if ($user_source === false)
|
||||
if ($user_source === false) {
|
||||
return false;
|
||||
if (count($user_source) > 0)
|
||||
}
|
||||
if (count($user_source) > 0) {
|
||||
return $user_source[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -179,10 +181,12 @@ function User($id) {
|
|||
*/
|
||||
function mUser_Limit($id) {
|
||||
$user_source = sql_select("SELECT `UID`, `Nick`, `Name`, `Vorname`, `Telefon`, `DECT`, `Handy`, `email`, `jabber` FROM `User` WHERE `UID`='" . sql_escape($id) . "' LIMIT 1");
|
||||
if ($user_source === false)
|
||||
if ($user_source === false) {
|
||||
return false;
|
||||
if (count($user_source) > 0)
|
||||
}
|
||||
if (count($user_source) > 0) {
|
||||
return $user_source[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -195,10 +199,12 @@ function mUser_Limit($id) {
|
|||
*/
|
||||
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)
|
||||
if ($user === false) {
|
||||
return false;
|
||||
if (count($user) == 0)
|
||||
}
|
||||
if (count($user) == 0) {
|
||||
return null;
|
||||
}
|
||||
return $user[0];
|
||||
}
|
||||
|
||||
|
@ -210,10 +216,12 @@ function User_by_api_key($api_key) {
|
|||
*/
|
||||
function User_by_email($email) {
|
||||
$user = sql_select("SELECT * FROM `User` WHERE `email`='" . sql_escape($email) . "' LIMIT 1");
|
||||
if ($user === false)
|
||||
if ($user === false) {
|
||||
return false;
|
||||
if (count($user) == 0)
|
||||
}
|
||||
if (count($user) == 0) {
|
||||
return null;
|
||||
}
|
||||
return $user[0];
|
||||
}
|
||||
|
||||
|
@ -225,10 +233,12 @@ function User_by_email($email) {
|
|||
*/
|
||||
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)
|
||||
if ($user === false) {
|
||||
return false;
|
||||
if (count($user) == 0)
|
||||
}
|
||||
if (count($user) == 0) {
|
||||
return null;
|
||||
}
|
||||
return $user[0];
|
||||
}
|
||||
|
||||
|
@ -240,11 +250,13 @@ function User_by_password_recovery_token($token) {
|
|||
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)
|
||||
if ($result === false) {
|
||||
return false;
|
||||
if ($log)
|
||||
}
|
||||
if ($log) {
|
||||
engelsystem_log(sprintf("API key resetted (%s).", User_Nick_render($user)));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a new password recovery token for given user.
|
||||
|
@ -254,13 +266,13 @@ function User_reset_api_key(&$user, $log = true) {
|
|||
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)
|
||||
if ($result === false) {
|
||||
return false;
|
||||
}
|
||||
engelsystem_log("Password recovery for " . User_Nick_render($user) . " started.");
|
||||
return $user['password_recovery_token'];
|
||||
}
|
||||
|
||||
|
||||
function User_get_eligable_voucher_count(&$user) {
|
||||
global $voucher_settings;
|
||||
|
||||
|
|
|
@ -21,42 +21,39 @@ function AngelType_name_render($angeltype) {
|
|||
* @return string
|
||||
*/
|
||||
function AngelType_render_membership($user_angeltype) {
|
||||
$membership = "";
|
||||
if ($user_angeltype['user_angeltype_id'] != null) {
|
||||
if ($user_angeltype['restricted']) {
|
||||
if ($user_angeltype['confirm_user_id'] == null)
|
||||
$membership = glyph('lock') . _("Unconfirmed");
|
||||
elseif ($user_angeltype['coordinator'])
|
||||
$membership = glyph_bool(true) . _("Coordinator");
|
||||
else
|
||||
$membership = glyph_bool(true) . _("Member");
|
||||
} elseif ($user_angeltype['coordinator'])
|
||||
$membership = glyph_bool(true) . _("Coordinator");
|
||||
else
|
||||
$membership = glyph_bool(true) . _("Member");
|
||||
} else {
|
||||
$membership = glyph_bool(false);
|
||||
if ($user_angeltype['confirm_user_id'] == null) {
|
||||
return glyph('lock') . _("Unconfirmed");
|
||||
} elseif ($user_angeltype['coordinator']) {
|
||||
return glyph_bool(true) . _("Coordinator");
|
||||
}
|
||||
return $membership;
|
||||
return glyph_bool(true) . _("Member");
|
||||
} elseif ($user_angeltype['coordinator']) {
|
||||
return glyph_bool(true) . _("Coordinator");
|
||||
}
|
||||
return glyph_bool(true) . _("Member");
|
||||
}
|
||||
return glyph_bool(false);
|
||||
}
|
||||
|
||||
function AngelType_delete_view($angeltype) {
|
||||
return page_with_title(sprintf(_("Delete angeltype %s"), $angeltype['name']), array(
|
||||
info(sprintf(_("Do you want to delete angeltype %s?"), $angeltype['name']), true),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes'), _("cancel"), 'cancel'),
|
||||
button(page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'] . '&confirmed', _("delete"), 'ok')
|
||||
))
|
||||
])
|
||||
));
|
||||
}
|
||||
|
||||
function AngelType_edit_view($name, $restricted, $description, $coordinator_mode, $requires_driver_license) {
|
||||
return page_with_title(sprintf(_("Edit %s"), $name), array(
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes'), _("Angeltypes"), 'back')
|
||||
)),
|
||||
]),
|
||||
msg(),
|
||||
form(array(
|
||||
form([
|
||||
$coordinator_mode ? form_info(_("Name"), $name) : form_text('name', _("Name"), $name),
|
||||
$coordinator_mode ? form_info(_("Restricted"), $restricted ? _("Yes") : _("No")) : form_checkbox('restricted', _("Restricted"), $restricted),
|
||||
$coordinator_mode ? form_info(_("Requires driver license"), $requires_driver_license ? _("Yes") : _("No")) : form_checkbox('requires_driver_license', _("Requires driver license"), $requires_driver_license),
|
||||
|
@ -64,7 +61,7 @@ function AngelType_edit_view($name, $restricted, $description, $coordinator_mode
|
|||
form_textarea('description', _("Description"), $description),
|
||||
form_info("", _("Please use markdown for the description.")),
|
||||
form_submit('submit', _("Save"))
|
||||
))
|
||||
])
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -73,38 +70,44 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel
|
|||
button(page_link_to('angeltypes'), _("Angeltypes"), 'back')
|
||||
];
|
||||
|
||||
if ($angeltype['requires_driver_license'])
|
||||
if ($angeltype['requires_driver_license']) {
|
||||
$buttons[] = button(user_driver_license_edit_link($user), glyph("road") . _("my driving license"));
|
||||
}
|
||||
|
||||
if ($user_angeltype == null)
|
||||
if ($user_angeltype == null) {
|
||||
$buttons[] = button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], _("join"), 'add');
|
||||
else {
|
||||
if ($angeltype['requires_driver_license'] && $user_driver_license == null)
|
||||
} else {
|
||||
if ($angeltype['requires_driver_license'] && $user_driver_license == null) {
|
||||
error(_("This angeltype requires a driver license. Please enter your driver license information!"));
|
||||
}
|
||||
|
||||
if ($angeltype['restricted'] && $user_angeltype['confirm_user_id'] == null)
|
||||
if ($angeltype['restricted'] && $user_angeltype['confirm_user_id'] == null) {
|
||||
error(sprintf(_("You are unconfirmed for this angeltype. Please go to the introduction for %s to get confirmed."), $angeltype['name']));
|
||||
}
|
||||
$buttons[] = button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $user_angeltype['id'], _("leave"), 'cancel');
|
||||
}
|
||||
|
||||
if ($admin_angeltypes || $coordinator)
|
||||
if ($admin_angeltypes || $coordinator) {
|
||||
$buttons[] = button(page_link_to('angeltypes') . '&action=edit&angeltype_id=' . $angeltype['id'], _("edit"), 'edit');
|
||||
if ($admin_angeltypes)
|
||||
}
|
||||
if ($admin_angeltypes) {
|
||||
$buttons[] = button(page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'], _("delete"), 'delete');
|
||||
}
|
||||
|
||||
$page = array(
|
||||
$page = [
|
||||
msg(),
|
||||
buttons($buttons)
|
||||
);
|
||||
];
|
||||
|
||||
$page[] = '<h3>' . _("Description") . '</h3>';
|
||||
$parsedown = new Parsedown();
|
||||
if ($angeltype['description'] != "")
|
||||
if ($angeltype['description'] != "") {
|
||||
$page[] = '<div class="well">' . $parsedown->parse($angeltype['description']) . '</div>';
|
||||
}
|
||||
|
||||
$coordinators = array();
|
||||
$members_confirmed = array();
|
||||
$members_unconfirmed = array();
|
||||
$coordinators = [];
|
||||
$members_confirmed = [];
|
||||
$members_unconfirmed = [];
|
||||
foreach ($members as $member) {
|
||||
$member['Nick'] = User_Nick_render($member);
|
||||
|
||||
|
@ -125,19 +128,21 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel
|
|||
]);
|
||||
$members_unconfirmed[] = $member;
|
||||
} elseif ($member['coordinator']) {
|
||||
if ($admin_angeltypes)
|
||||
if ($admin_angeltypes) {
|
||||
$member['actions'] = table_buttons([
|
||||
button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $member['user_angeltype_id'] . '&coordinator=0', _("Remove coordinator rights"), 'btn-xs')
|
||||
]);
|
||||
else
|
||||
} else {
|
||||
$member['actions'] = '';
|
||||
}
|
||||
$coordinators[] = $member;
|
||||
} else {
|
||||
if ($admin_user_angeltypes)
|
||||
if ($admin_user_angeltypes) {
|
||||
$member['actions'] = table_buttons([
|
||||
$admin_angeltypes ? button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $member['user_angeltype_id'] . '&coordinator=1', _("Add coordinator rights"), 'btn-xs') : '',
|
||||
button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $member['user_angeltype_id'], _("remove"), 'btn-xs')
|
||||
]);
|
||||
}
|
||||
$members_confirmed[] = $member;
|
||||
}
|
||||
}
|
||||
|
@ -167,25 +172,28 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel
|
|||
$page[] = table($table_headers, $coordinators);
|
||||
}
|
||||
|
||||
if (count($members_confirmed) > 0)
|
||||
if (count($members_confirmed) > 0) {
|
||||
$members_confirmed[] = [
|
||||
'Nick' => _('Sum'),
|
||||
'DECT' => count($members_confirmed),
|
||||
'actions' => ''
|
||||
];
|
||||
}
|
||||
|
||||
if (count($members_unconfirmed) > 0)
|
||||
if (count($members_unconfirmed) > 0) {
|
||||
$members_unconfirmed[] = [
|
||||
'Nick' => _('Sum'),
|
||||
'DECT' => count($members_unconfirmed),
|
||||
'actions' => ''
|
||||
];
|
||||
}
|
||||
|
||||
$page[] = '<h3>' . _("Members") . '</h3>';
|
||||
if ($admin_user_angeltypes)
|
||||
if ($admin_user_angeltypes) {
|
||||
$page[] = buttons([
|
||||
button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], _("Add"), 'add')
|
||||
]);
|
||||
}
|
||||
$page[] = table($table_headers, $members_confirmed);
|
||||
|
||||
if ($admin_user_angeltypes && $angeltype['restricted'] && count($members_unconfirmed) > 0) {
|
||||
|
@ -206,51 +214,54 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel
|
|||
* @param array $angeltypes
|
||||
*/
|
||||
function AngelTypes_list_view($angeltypes, $admin_angeltypes) {
|
||||
return page_with_title(angeltypes_title(), array(
|
||||
return page_with_title(angeltypes_title(), [
|
||||
msg(),
|
||||
buttons(array(
|
||||
buttons([
|
||||
$admin_angeltypes ? button(page_link_to('angeltypes') . '&action=edit', _("New angeltype"), 'add') : '',
|
||||
button(page_link_to('angeltypes') . '&action=about', _("Teams/Job description"))
|
||||
)),
|
||||
table(array(
|
||||
]),
|
||||
table([
|
||||
'name' => _("Name"),
|
||||
'restricted' => glyph('lock') . _("Restricted"),
|
||||
'membership' => _("Membership"),
|
||||
'actions' => ""
|
||||
), $angeltypes)
|
||||
));
|
||||
], $angeltypes)
|
||||
]);
|
||||
}
|
||||
|
||||
function AngelTypes_about_view($angeltypes, $user_logged_in) {
|
||||
global $faq_url;
|
||||
|
||||
$content = array(
|
||||
buttons(array(
|
||||
$content = [
|
||||
buttons([
|
||||
! $user_logged_in ? button(page_link_to('register'), register_title()) : '',
|
||||
! $user_logged_in ? button(page_link_to('login'), login_title()) : '',
|
||||
$user_logged_in ? button(page_link_to('angeltypes'), angeltypes_title(), 'back') : '',
|
||||
button($faq_url, _("FAQ"), "btn-primary")
|
||||
)),
|
||||
]),
|
||||
'<p>' . _("Here is the list of teams and their tasks. If you have questions, read the FAQ.") . '</p>',
|
||||
'<hr />'
|
||||
);
|
||||
];
|
||||
$parsedown = new Parsedown();
|
||||
foreach ($angeltypes as $angeltype) {
|
||||
$content[] = '<h2>' . $angeltype['name'] . '</h2>';
|
||||
|
||||
if (isset($angeltype['user_angeltype_id'])) {
|
||||
$buttons = array();
|
||||
if ($angeltype['user_angeltype_id'] != null)
|
||||
$buttons = [];
|
||||
if ($angeltype['user_angeltype_id'] != null) {
|
||||
$buttons[] = button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $angeltype['user_angeltype_id'], _("leave"), 'cancel');
|
||||
else
|
||||
} else {
|
||||
$buttons[] = button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], _("join"), 'add');
|
||||
}
|
||||
$content[] = buttons($buttons);
|
||||
}
|
||||
|
||||
if ($angeltype['restricted'])
|
||||
if ($angeltype['restricted']) {
|
||||
$content[] = info(_("This angeltype is restricted by double-opt-in by a team coordinator. Please show up at the according introduction meetings."), true);
|
||||
if ($angeltype['description'] != "")
|
||||
}
|
||||
if ($angeltype['description'] != "") {
|
||||
$content[] = '<div class="well">' . $parsedown->parse($angeltype['description']) . '</div>';
|
||||
}
|
||||
$content[] = '<hr />';
|
||||
}
|
||||
|
||||
|
|
|
@ -12,26 +12,26 @@ function Questions_view($open_questions, $answered_questions, $ask_action) {
|
|||
$question['actions'] = '<a href="' . page_link_to("user_questions") . '&action=delete&id=' . $question['QID'] . '">' . _("delete") . '</a>';
|
||||
}
|
||||
|
||||
return page_with_title(questions_title(), array(
|
||||
return page_with_title(questions_title(), [
|
||||
msg(),
|
||||
'<h2>' . _("Open questions") . '</h2>',
|
||||
table(array(
|
||||
heading(_("Open questions"), 2),
|
||||
table([
|
||||
'Question' => _("Question"),
|
||||
'actions' => ""
|
||||
), $open_questions),
|
||||
'<h2>' . _("Answered questions") . '</h2>',
|
||||
table(array(
|
||||
], $open_questions),
|
||||
heading(_("Answered questions"), 2),
|
||||
table([
|
||||
'Question' => _("Question"),
|
||||
'answer_user' => _("Answered by"),
|
||||
'Answer' => _("Answer"),
|
||||
'actions' => ""
|
||||
), $answered_questions),
|
||||
'<h2>' . _("Ask an archangel") . '</h2>',
|
||||
form(array(
|
||||
], $answered_questions),
|
||||
heading(_("Ask an archangel"), 2),
|
||||
form([
|
||||
form_textarea('question', _("Your Question:"), ""),
|
||||
form_submit('submit', _("Save"))
|
||||
), $ask_action)
|
||||
));
|
||||
], $ask_action)
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
function Room_name_render($room) {
|
||||
global $privileges;
|
||||
if (in_array('admin_rooms', $privileges))
|
||||
if (in_array('admin_rooms', $privileges)) {
|
||||
return '<a href="' . room_link($room) . '">' . glyph('map-marker') . $room['Name'] . '</a>';
|
||||
}
|
||||
return glyph('map-marker') . $room['Name'];
|
||||
}
|
||||
|
||||
|
|
|
@ -13,16 +13,16 @@
|
|||
*/
|
||||
function ShiftEntry_edit_view($angel, $date, $location, $title, $type, $comment, $freeloaded, $freeload_comment, $user_admin_shifts = false) {
|
||||
if ($user_admin_shifts) {
|
||||
$freeload_form = array(
|
||||
$freeload_form = [
|
||||
form_checkbox('freeloaded', _("Freeloaded"), $freeloaded),
|
||||
form_textarea('freeload_comment', _("Freeload comment (Only for shift coordination):"), $freeload_comment)
|
||||
);
|
||||
];
|
||||
} else {
|
||||
$freeload_form = array();
|
||||
$freeload_form = [];
|
||||
}
|
||||
return page_with_title(_("Edit shift entry"), array(
|
||||
return page_with_title(_("Edit shift entry"), [
|
||||
msg(),
|
||||
form(array(
|
||||
form([
|
||||
form_info(_("Angel:"), $angel),
|
||||
form_info(_("Date, Duration:"), $date),
|
||||
form_info(_("Location:"), $location),
|
||||
|
@ -31,8 +31,8 @@ function ShiftEntry_edit_view($angel, $date, $location, $title, $type, $comment,
|
|||
form_textarea('comment', _("Comment (for your eyes only):"), $comment),
|
||||
join("", $freeload_form),
|
||||
form_submit('submit', _("Save"))
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -2,27 +2,29 @@
|
|||
|
||||
function ShiftType_name_render($shifttype) {
|
||||
global $privileges;
|
||||
if (in_array('shifttypes', $privileges))
|
||||
if (in_array('shifttypes', $privileges)) {
|
||||
return '<a href="' . shifttype_link($shifttype) . '">' . $shifttype['name'] . '</a>';
|
||||
}
|
||||
return $shifttype['name'];
|
||||
}
|
||||
|
||||
function ShiftType_delete_view($shifttype) {
|
||||
return page_with_title(sprintf(_("Delete shifttype %s"), $shifttype['name']), array(
|
||||
return page_with_title(sprintf(_("Delete shifttype %s"), $shifttype['name']), [
|
||||
info(sprintf(_("Do you want to delete shifttype %s?"), $shifttype['name']), true),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('shifttypes'), _("cancel"), 'cancel'),
|
||||
button(page_link_to('shifttypes') . '&action=delete&shifttype_id=' . $shifttype['id'] . '&confirmed', _("delete"), 'ok')
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id) {
|
||||
$angeltypes_select = [
|
||||
'' => _('All')
|
||||
];
|
||||
foreach ($angeltypes as $angeltype)
|
||||
foreach ($angeltypes as $angeltype) {
|
||||
$angeltypes_select[$angeltype['id']] = $angeltype['name'];
|
||||
}
|
||||
|
||||
return page_with_title($shifttype_id ? _('Edit shifttype') : _('Create shifttype'), [
|
||||
msg(),
|
||||
|
@ -42,8 +44,9 @@ function ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $s
|
|||
function ShiftType_view($shifttype, $angeltype) {
|
||||
$parsedown = new Parsedown();
|
||||
$title = $shifttype['name'];
|
||||
if ($angeltype)
|
||||
if ($angeltype) {
|
||||
$title .= ' <small>' . sprintf(_('for team %s'), $angeltype['name']) . '</small>';
|
||||
}
|
||||
return page_with_title($title, [
|
||||
msg(),
|
||||
buttons([
|
||||
|
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
function Shift_editor_info_render($shift) {
|
||||
$info = [];
|
||||
if ($shift['created_by_user_id'] != null)
|
||||
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'])));
|
||||
if ($shift['edited_by_user_id'] != null)
|
||||
}
|
||||
if ($shift['edited_by_user_id'] != null) {
|
||||
$info[] = sprintf(glyph('pencil') . _("edited at %s by %s"), date('Y-m-d H:i', $shift['edited_at_timestamp']), User_Nick_render(User($shift['edited_by_user_id'])));
|
||||
}
|
||||
return join('<br />', $info);
|
||||
}
|
||||
|
||||
|
@ -14,15 +16,16 @@ function Shift_signup_button_render($shift, $angeltype, $user_angeltype = null,
|
|||
|
||||
if ($user_angeltype == null) {
|
||||
$user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype);
|
||||
if ($user_angeltype === false)
|
||||
if ($user_angeltype === false) {
|
||||
engelsystem_error('Unable to load user angeltype.');
|
||||
}
|
||||
}
|
||||
|
||||
if (Shift_signup_allowed($shift, $angeltype, $user_angeltype, $user_shifts))
|
||||
if (Shift_signup_allowed($shift, $angeltype, $user_angeltype, $user_shifts)) {
|
||||
return button(page_link_to('user_shifts') . '&shift_id=' . $shift['SID'] . '&type_id=' . $angeltype['id'], _('Sign up'));
|
||||
elseif ($user_angeltype == null)
|
||||
} elseif ($user_angeltype == null) {
|
||||
return button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], sprintf(_('Become %s'), $angeltype['name']));
|
||||
else
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
|
@ -30,16 +33,19 @@ function Shift_view($shift, $shifttype, $room, $shift_admin, $angeltypes_source,
|
|||
$parsedown = new Parsedown();
|
||||
|
||||
$angeltypes = [];
|
||||
foreach ($angeltypes_source as $angeltype)
|
||||
foreach ($angeltypes_source as $angeltype) {
|
||||
$angeltypes[$angeltype['id']] = $angeltype;
|
||||
}
|
||||
|
||||
$needed_angels = '';
|
||||
foreach ($shift['NeedAngels'] as $needed_angeltype) {
|
||||
$class = 'progress-bar-warning';
|
||||
if ($needed_angeltype['taken'] == 0)
|
||||
if ($needed_angeltype['taken'] == 0) {
|
||||
$class = 'progress-bar-danger';
|
||||
if ($needed_angeltype['taken'] >= $needed_angeltype['count'])
|
||||
}
|
||||
if ($needed_angeltype['taken'] >= $needed_angeltype['count']) {
|
||||
$class = 'progress-bar-success';
|
||||
}
|
||||
$needed_angels .= '<div class="list-group-item">';
|
||||
|
||||
$needed_angels .= '<div class="pull-right">' . Shift_signup_button_render($shift, $angeltypes[$needed_angeltype['TID']]) . '</div>';
|
||||
|
@ -51,8 +57,9 @@ function Shift_view($shift, $shifttype, $room, $shift_admin, $angeltypes_source,
|
|||
foreach ($shift['ShiftEntry'] as $shift_entry) {
|
||||
if ($shift_entry['TID'] == $needed_angeltype['TID']) {
|
||||
$entry = User_Nick_render(User($shift_entry['UID']));
|
||||
if ($shift_entry['freeloaded'])
|
||||
if ($shift_entry['freeloaded']) {
|
||||
$entry = '<strike>' . $entry . '</strike>';
|
||||
}
|
||||
if ($user_shift_admin) {
|
||||
$entry .= ' <div class="btn-group">';
|
||||
$entry .= button_glyph(page_link_to('user_myshifts') . '&edit=' . $shift_entry['id'] . '&id=' . $shift_entry['UID'], 'pencil', 'btn-xs');
|
||||
|
@ -69,7 +76,6 @@ function Shift_view($shift, $shifttype, $room, $shift_admin, $angeltypes_source,
|
|||
}
|
||||
|
||||
return page_with_title($shift['name'] . ' <small class="moment-countdown" data-timestamp="' . $shift['start'] . '">%c</small>', [
|
||||
|
||||
msg(),
|
||||
Shift_collides($shift, $user_shifts) ? info(_('This shift collides with one of your shifts.'), true) : '',
|
||||
$signed_up ? info(_('You are signed up for this shift.'), true) : '',
|
||||
|
|
|
@ -1,86 +1,88 @@
|
|||
<?php
|
||||
|
||||
function UserAngelType_update_view($user_angeltype, $user, $angeltype, $coordinator) {
|
||||
return page_with_title($coordinator ? _("Add coordinator rights") : _("Remove coordinator rights"), array(
|
||||
return page_with_title($coordinator ? _("Add coordinator rights") : _("Remove coordinator rights"), [
|
||||
msg(),
|
||||
info(sprintf($coordinator ? _("Do you really want to add coordinator rights for %s to %s?") : _("Do you really want to remove coordinator rights for %s from %s?"), $angeltype['name'], User_Nick_render($user)), true),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("cancel"), 'cancel'),
|
||||
button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $user_angeltype['id'] . '&coordinator=' . ($coordinator ? '1' : '0') . '&confirmed', _("yes"), 'ok')
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function UserAngelTypes_delete_all_view($angeltype) {
|
||||
return page_with_title(_("Deny all users"), array(
|
||||
return page_with_title(_("Deny all users"), [
|
||||
msg(),
|
||||
info(sprintf(_("Do you really want to deny all users for %s?"), $angeltype['name']), true),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("cancel"), 'cancel'),
|
||||
button(page_link_to('user_angeltypes') . '&action=delete_all&angeltype_id=' . $angeltype['id'] . '&confirmed', _("yes"), 'ok')
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function UserAngelTypes_confirm_all_view($angeltype) {
|
||||
return page_with_title(_("Confirm all users"), array(
|
||||
return page_with_title(_("Confirm all users"), [
|
||||
msg(),
|
||||
info(sprintf(_("Do you really want to confirm all users for %s?"), $angeltype['name']), true),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("cancel"), 'cancel'),
|
||||
button(page_link_to('user_angeltypes') . '&action=confirm_all&angeltype_id=' . $angeltype['id'] . '&confirmed', _("yes"), 'ok')
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_confirm_view($user_angeltype, $user, $angeltype) {
|
||||
return page_with_title(_("Confirm angeltype for user"), array(
|
||||
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),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("cancel"), 'cancel'),
|
||||
button(page_link_to('user_angeltypes') . '&action=confirm&user_angeltype_id=' . $user_angeltype['id'] . '&confirmed', _("yes"), 'ok')
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_delete_view($user_angeltype, $user, $angeltype) {
|
||||
return page_with_title(_("Remove angeltype"), array(
|
||||
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),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("cancel"), 'cancel'),
|
||||
button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $user_angeltype['id'] . '&confirmed', _("yes"), 'ok')
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_add_view($angeltype, $users_source, $user_id) {
|
||||
$users = array();
|
||||
foreach ($users_source as $user_source)
|
||||
$users = [];
|
||||
foreach ($users_source as $user_source) {
|
||||
$users[$user_source['UID']] = User_Nick_render($user_source);
|
||||
}
|
||||
|
||||
return page_with_title(_("Add user to angeltype"), array(
|
||||
return page_with_title(_("Add user to angeltype"), [
|
||||
msg(),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("back"), 'back')
|
||||
)),
|
||||
form(array(
|
||||
]),
|
||||
form([
|
||||
form_info(_("Angeltype"), $angeltype['name']),
|
||||
form_select('user_id', _("User"), $users, $user_id),
|
||||
form_submit('submit', _("Add"))
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function UserAngelType_join_view($user, $angeltype) {
|
||||
return page_with_title(sprintf(_("Become a %s"), $angeltype['name']), array(
|
||||
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),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("cancel"), 'cancel'),
|
||||
button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'] . '&user_id=' . $user['UID'] . '&confirmed', _("save"), 'ok')
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
?>
|
|
@ -3,7 +3,7 @@
|
|||
/**
|
||||
* Available T-Shirt sizes
|
||||
*/
|
||||
$tshirt_sizes = array(
|
||||
$tshirt_sizes = [
|
||||
'' => _("Please select..."),
|
||||
'S' => "S",
|
||||
'M' => "M",
|
||||
|
@ -17,7 +17,7 @@ $tshirt_sizes = array(
|
|||
'M-G' => "M Girl",
|
||||
'L-G' => "L Girl",
|
||||
'XL-G' => "XL Girl"
|
||||
);
|
||||
];
|
||||
|
||||
/**
|
||||
* Displays the welcome message to the user and shows a login form.
|
||||
|
@ -112,12 +112,12 @@ function Users_view($users, $order_by, $arrived_count, $active_count, $force_act
|
|||
'actions' => '<strong>' . count($users) . '</strong>'
|
||||
);
|
||||
|
||||
return page_with_title(_('All users'), array(
|
||||
return page_with_title(_('All users'), [
|
||||
msg(),
|
||||
buttons(array(
|
||||
buttons([
|
||||
button(page_link_to('register'), glyph('plus') . _('New user'))
|
||||
)),
|
||||
table(array(
|
||||
]),
|
||||
table([
|
||||
'Nick' => Users_table_header_link('Nick', _('Nick'), $order_by),
|
||||
'Vorname' => Users_table_header_link('Vorname', _('Prename'), $order_by),
|
||||
'Name' => Users_table_header_link('Name', _('Name'), $order_by),
|
||||
|
@ -131,8 +131,8 @@ function Users_view($users, $order_by, $arrived_count, $active_count, $force_act
|
|||
'Size' => Users_table_header_link('Size', _('Size'), $order_by),
|
||||
'lastLogIn' => Users_table_header_link('lastLogIn', _('Last login'), $order_by),
|
||||
'actions' => ''
|
||||
), $users)
|
||||
));
|
||||
], $users)
|
||||
]);
|
||||
}
|
||||
|
||||
function Users_table_header_link($column, $label, $order_by) {
|
||||
|
@ -141,101 +141,112 @@ function Users_table_header_link($column, $label, $order_by) {
|
|||
|
||||
function User_shift_state_render($user) {
|
||||
$upcoming_shifts = ShiftEntries_upcoming_for_user($user);
|
||||
if ($upcoming_shifts === false)
|
||||
if ($upcoming_shifts === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (count($upcoming_shifts) == 0)
|
||||
if (count($upcoming_shifts) == 0) {
|
||||
return '<span class="text-success">' . _("Free") . '</span>';
|
||||
}
|
||||
|
||||
if ($upcoming_shifts[0]['start'] > time())
|
||||
if ($upcoming_shifts[0]['start'] - time() > 3600)
|
||||
if ($upcoming_shifts[0]['start'] > time()) {
|
||||
if ($upcoming_shifts[0]['start'] - time() > 3600) {
|
||||
return '<span class="text-success moment-countdown" data-timestamp="' . $upcoming_shifts[0]['start'] . '">' . _("Next shift %c") . '</span>';
|
||||
else
|
||||
} else {
|
||||
return '<span class="text-warning moment-countdown" data-timestamp="' . $upcoming_shifts[0]['start'] . '">' . _("Next shift %c") . '</span>';
|
||||
|
||||
}
|
||||
}
|
||||
$halfway = ($upcoming_shifts[0]['start'] + $upcoming_shifts[0]['end']) / 2;
|
||||
|
||||
if (time() < $halfway)
|
||||
if (time() < $halfway) {
|
||||
return '<span class="text-danger moment-countdown" data-timestamp="' . $upcoming_shifts[0]['start'] . '">' . _("Shift starts %c") . '</span>';
|
||||
else
|
||||
} else {
|
||||
return '<span class="text-danger moment-countdown" data-timestamp="' . $upcoming_shifts[0]['end'] . '">' . _("Shift ends %c") . '</span>';
|
||||
}
|
||||
}
|
||||
|
||||
function User_view($user_source, $admin_user_privilege, $freeloader, $user_angeltypes, $user_groups, $shifts, $its_me) {
|
||||
global $LETZTES_AUSTRAGEN, $privileges;
|
||||
|
||||
$user_name = htmlspecialchars($user_source['Vorname']) . " " . htmlspecialchars($user_source['Name']);
|
||||
|
||||
$myshifts_table = array();
|
||||
$myshifts_table = [];
|
||||
$timesum = 0;
|
||||
foreach ($shifts as $shift) {
|
||||
$shift_info = '<a href="' . shift_link($shift) . '">' . $shift['name'] . '</a>';
|
||||
if ($shift['title'])
|
||||
if ($shift['title']) {
|
||||
$shift_info .= '<br /><a href="' . shift_link($shift) . '">' . $shift['title'] . '</a>';
|
||||
}
|
||||
foreach ($shift['needed_angeltypes'] as $needed_angel_type) {
|
||||
$shift_info .= '<br><b>' . $needed_angel_type['name'] . ':</b> ';
|
||||
|
||||
$shift_entries = array();
|
||||
$shift_entries = [];
|
||||
foreach ($needed_angel_type['users'] as $user_shift) {
|
||||
$member = User_Nick_render($user_shift);
|
||||
if ($user_shift['freeloaded'])
|
||||
if ($user_shift['freeloaded']) {
|
||||
$member = '<strike>' . $member . '</strike>';
|
||||
}
|
||||
|
||||
$shift_entries[] = $member;
|
||||
}
|
||||
$shift_info .= join(", ", $shift_entries);
|
||||
}
|
||||
|
||||
$myshift = array(
|
||||
$myshift = [
|
||||
'date' => date("Y-m-d", $shift['start']),
|
||||
'time' => date("H:i", $shift['start']) . ' - ' . date("H:i", $shift['end']),
|
||||
'room' => $shift['Name'],
|
||||
'shift_info' => $shift_info,
|
||||
'comment' => $shift['Comment']
|
||||
);
|
||||
];
|
||||
|
||||
if ($shift['freeloaded']) {
|
||||
if (in_array("user_shifts_admin", $privileges))
|
||||
if (in_array("user_shifts_admin", $privileges)) {
|
||||
$myshift['comment'] .= '<br /><p class="error">' . _("Freeloaded") . ': ' . $shift['freeload_comment'] . '</p>';
|
||||
else
|
||||
} else {
|
||||
$myshift['comment'] .= '<br /><p class="error">' . _("Freeloaded") . '</p>';
|
||||
}
|
||||
}
|
||||
|
||||
$myshift['actions'] = [
|
||||
button(shift_link($shift), glyph('eye-open') . _('view'), 'btn-xs')
|
||||
];
|
||||
if ($its_me || in_array('user_shifts_admin', $privileges))
|
||||
if ($its_me || in_array('user_shifts_admin', $privileges)) {
|
||||
$myshift['actions'][] = button(page_link_to('user_myshifts') . '&edit=' . $shift['id'] . '&id=' . $user_source['UID'], glyph('edit') . _('edit'), 'btn-xs');
|
||||
if (($shift['start'] > time() + $LETZTES_AUSTRAGEN * 3600) || in_array('user_shifts_admin', $privileges))
|
||||
}
|
||||
if (($shift['start'] > time() + $LETZTES_AUSTRAGEN * 3600) || in_array('user_shifts_admin', $privileges)) {
|
||||
$myshift['actions'][] = button(page_link_to('user_myshifts') . ((! $its_me) ? '&id=' . $user_source['UID'] : '') . '&cancel=' . $shift['id'], glyph('trash') . _('sign off'), 'btn-xs');
|
||||
}
|
||||
$myshift['actions'] = table_buttons($myshift['actions']);
|
||||
|
||||
if ($shift['freeloaded'])
|
||||
if ($shift['freeloaded']) {
|
||||
$timesum += (- 2 * ($shift['end'] - $shift['start']));
|
||||
else
|
||||
} else {
|
||||
$timesum += ($shift['end'] - $shift['start']);
|
||||
}
|
||||
$myshifts_table[] = $myshift;
|
||||
}
|
||||
if (count($myshifts_table) > 0)
|
||||
$myshifts_table[] = array(
|
||||
if (count($myshifts_table) > 0) {
|
||||
$myshifts_table[] = [
|
||||
'date' => '<b>' . _("Sum:") . '</b>',
|
||||
'time' => "<b>" . round($timesum / 3600, 1) . " h</b>",
|
||||
'room' => "",
|
||||
'shift_info' => "",
|
||||
'comment' => "",
|
||||
'actions' => ""
|
||||
);
|
||||
];
|
||||
}
|
||||
|
||||
return page_with_title('<span class="icon-icon_angel"></span> ' . htmlspecialchars($user_source['Nick']) . ' <small>' . $user_name . '</small>', array(
|
||||
return page_with_title('<span class="icon-icon_angel"></span> ' . htmlspecialchars($user_source['Nick']) . ' <small>' . $user_name . '</small>', [
|
||||
msg(),
|
||||
div('row', array(
|
||||
div('col-md-3', array(
|
||||
div('row', [
|
||||
div('col-md-3', [
|
||||
'<h1>',
|
||||
'<span class="glyphicon glyphicon-phone"></span>',
|
||||
$user_source['DECT'],
|
||||
'</h1>'
|
||||
)),
|
||||
div('col-md-3', array(
|
||||
]),
|
||||
div('col-md-3', [
|
||||
'<h4>' . _("User state") . '</h4>',
|
||||
($admin_user_privilege && $freeloader) ? '<span class="text-danger"><span class="glyphicon glyphicon-exclamation-sign"></span> ' . _("Freeloader") . '</span><br />' : '',
|
||||
$user_source['Gekommen'] ? User_shift_state_render($user_source) . '<br />' : '',
|
||||
|
@ -243,19 +254,19 @@ function User_view($user_source, $admin_user_privilege, $freeloader, $user_angel
|
|||
$admin_user_privilege ? ($user_source['got_voucher'] > 0 ? '<br /><span class="text-success">' . glyph('cutlery') . sprintf(ngettext("Got %s voucher", "Got %s vouchers", $user_source['got_voucher']), $user_source['got_voucher']) . '</span><br />' : '<br /><span class="text-danger">' . _("Got no vouchers") . '</span><br />') : '',
|
||||
($user_source['Gekommen'] && $admin_user_privilege && $user_source['Aktiv']) ? ' <span class="text-success">' . _("Active") . '</span>' : '',
|
||||
($user_source['Gekommen'] && $admin_user_privilege && $user_source['Tshirt']) ? ' <span class="text-success">' . _("T-Shirt") . '</span>' : ''
|
||||
)),
|
||||
div('col-md-3', array(
|
||||
]),
|
||||
div('col-md-3', [
|
||||
'<h4>' . _("Angeltypes") . '</h4>',
|
||||
User_angeltypes_render($user_angeltypes)
|
||||
)),
|
||||
div('col-md-3', array(
|
||||
]),
|
||||
div('col-md-3', [
|
||||
'<h4>' . _("Rights") . '</h4>',
|
||||
User_groups_render($user_groups)
|
||||
))
|
||||
)),
|
||||
div('row space-top', array(
|
||||
div('col-md-12', array(
|
||||
buttons(array(
|
||||
])
|
||||
]),
|
||||
div('row space-top', [
|
||||
div('col-md-12', [
|
||||
buttons([
|
||||
$admin_user_privilege ? button(page_link_to('admin_user') . '&id=' . $user_source['UID'], glyph("edit") . _("edit")) : '',
|
||||
$admin_user_privilege ? button(user_driver_license_edit_link($user_source), glyph("road") . _("driving license")) : '',
|
||||
($admin_user_privilege && ! $user_source['Gekommen']) ? button(page_link_to('admin_arrive') . '&arrived=' . $user_source['UID'], _("arrived")) : '',
|
||||
|
@ -264,63 +275,65 @@ function User_view($user_source, $admin_user_privilege, $freeloader, $user_angel
|
|||
$its_me ? button(page_link_to('ical') . '&key=' . $user_source['api_key'], glyph('calendar') . _("iCal Export")) : '',
|
||||
$its_me ? button(page_link_to('shifts_json_export') . '&key=' . $user_source['api_key'], glyph('export') . _("JSON Export")) : '',
|
||||
$its_me ? button(page_link_to('user_myshifts') . '&reset', glyph('repeat') . _('Reset API key')) : ''
|
||||
))
|
||||
))
|
||||
)),
|
||||
])
|
||||
])
|
||||
]),
|
||||
($its_me || $admin_user_privilege) ? '<h2>' . _("Shifts") . '</h2>' : '',
|
||||
($its_me || $admin_user_privilege) ? table(array(
|
||||
($its_me || $admin_user_privilege) ? table([
|
||||
'date' => _("Day"),
|
||||
'time' => _("Time"),
|
||||
'room' => _("Location"),
|
||||
'shift_info' => _("Name & workmates"),
|
||||
'comment' => _("Comment"),
|
||||
'actions' => _("Action")
|
||||
), $myshifts_table) : '',
|
||||
], $myshifts_table) : '',
|
||||
$its_me ? info(glyph('info-sign') . _("Your night shifts between 2 and 8 am count twice."), true) : '',
|
||||
$its_me && count($shifts) == 0 ? error(sprintf(_("Go to the <a href=\"%s\">shifts table</a> to sign yourself up for some shifts."), page_link_to('user_shifts')), true) : ''
|
||||
));
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* View for password recovery step 1: E-Mail
|
||||
*/
|
||||
function User_password_recovery_view() {
|
||||
return page_with_title(user_password_recovery_title(), array(
|
||||
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."),
|
||||
form(array(
|
||||
form([
|
||||
form_text('email', _("E-Mail"), ""),
|
||||
form_submit('submit', _("Recover"))
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* View for password recovery step 2: New password
|
||||
*/
|
||||
function User_password_set_view() {
|
||||
return page_with_title(user_password_recovery_title(), array(
|
||||
return page_with_title(user_password_recovery_title(), [
|
||||
msg(),
|
||||
_("Please enter a new password."),
|
||||
form(array(
|
||||
form([
|
||||
form_password('password', _("Password")),
|
||||
form_password('password2', _("Confirm password")),
|
||||
form_submit('submit', _("Save"))
|
||||
))
|
||||
));
|
||||
])
|
||||
]);
|
||||
}
|
||||
|
||||
function User_angeltypes_render($user_angeltypes) {
|
||||
$output = array();
|
||||
$output = [];
|
||||
foreach ($user_angeltypes as $angeltype) {
|
||||
$class = "";
|
||||
if ($angeltype['restricted'] == 1)
|
||||
if ($angeltype['confirm_user_id'] != null)
|
||||
if ($angeltype['restricted'] == 1) {
|
||||
if ($angeltype['confirm_user_id'] != null) {
|
||||
$class = 'text-success';
|
||||
else
|
||||
} else {
|
||||
$class = 'text-warning';
|
||||
else
|
||||
}
|
||||
} else {
|
||||
$class = 'text-success';
|
||||
}
|
||||
$output[] = '<a href="' . angeltype_link($angeltype['id']) . '" class="' . $class . '">' . ($angeltype['coordinator'] ? glyph('education') : '') . $angeltype['name'] . '</a>';
|
||||
}
|
||||
return join('<br />', $output);
|
||||
|
|
Loading…
Reference in New Issue