fossasia/engelsystem

View on GitHub
includes/controller/shifttypes_controller.php

Summary

Maintainability
C
7 hrs
Test Coverage
<?php
 
function shifttype_link($shifttype) {
return page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype['id'];
}
 
/**
* Delete a shifttype.
*/
Function `shifttype_delete_controller` has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
function shifttype_delete_controller() {
if (! isset($_REQUEST['shifttype_id']))
redirect(page_link_to('shifttypes'));
$shifttype = ShiftType($_REQUEST['shifttype_id']);
if ($shifttype === false)
engelsystem_error('Unable to load shifttype.');
if ($shifttype == null)
redirect(page_link_to('shifttypes'));
 
if (isset($_REQUEST['confirmed'])) {
$result = ShiftType_delete($shifttype['id']);
if ($result === false)
engelsystem_error('Unable to delete shifttype.');
 
engelsystem_log('Deleted shifttype ' . $shifttype['name']);
success(sprintf(_('Shifttype %s deleted.'), $shifttype['name']));
redirect(page_link_to('shifttypes'));
}
 
return array(
sprintf(_("Delete shifttype %s"), $shifttype['name']),
ShiftType_delete_view($shifttype)
);
}
 
/**
* Edit or create shift type.
*/
Function `shifttype_edit_controller` has a Cognitive Complexity of 31 (exceeds 5 allowed). Consider refactoring.
Method `shifttype_edit_controller` has 55 lines of code (exceeds 25 allowed). Consider refactoring.
function shifttype_edit_controller() {
$shifttype_id = null;
$name = "";
$angeltype_id = null;
$description = "";
 
$angeltypes = AngelTypes();
if ($angeltypes === false)
engelsystem_error("Unable to load angel types.");
 
if (isset($_REQUEST['shifttype_id'])) {
$shifttype = ShiftType($_REQUEST['shifttype_id']);
if ($shifttype === false)
engelsystem_error('Unable to load shifttype.');
if ($shifttype == null) {
error(_('Shifttype not found.'));
redirect(page_link_to('shifttypes'));
}
$shifttype_id = $shifttype['id'];
$name = $shifttype['name'];
$angeltype_id = $shifttype['angeltype_id'];
$description = $shifttype['description'];
}
 
if (isset($_REQUEST['submit'])) {
$ok = true;
 
if (isset($_REQUEST['name']) && $_REQUEST['name'] != '')
$name = strip_request_item('name');
else {
$ok = false;
error(_('Please enter a name.'));
}
 
if (isset($_REQUEST['angeltype_id']) && preg_match("/^[0-9]+$/", $_REQUEST['angeltype_id']))
$angeltype_id = $_REQUEST['angeltype_id'];
else
$angeltype_id = null;
 
if (isset($_REQUEST['description']))
$description = strip_request_item_nl('description');
 
if ($ok) {
if ($shifttype_id) {
$result = ShiftType_update($shifttype_id, $name, $angeltype_id, $description);
if ($result === false)
engelsystem_error('Unable to update shifttype.');
engelsystem_log('Updated shifttype ' . $name);
success(_('Updated shifttype.'));
} else {
$shifttype_id = ShiftType_create($name, $angeltype_id, $description);
if ($shifttype_id === false)
engelsystem_error('Unable to create shifttype.');
engelsystem_log('Created shifttype ' . $name);
success(_('Created shifttype.'));
}
redirect(page_link_to('shifttypes') . '&action=view&shifttype_id=' . $shifttype_id);
}
}
 
return [
shifttypes_title(),
ShiftType_edit_view($name, $angeltype_id, $angeltypes, $description, $shifttype_id)
];
}
 
Function `shifttype_controller` has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
function shifttype_controller() {
if (! isset($_REQUEST['shifttype_id']))
redirect(page_link_to('shifttypes'));
$shifttype = ShiftType($_REQUEST['shifttype_id']);
if ($shifttype === false)
engelsystem_error('Unable to load shifttype.');
if ($shifttype == null)
redirect(page_link_to('shifttypes'));
 
$angeltype = null;
if ($shifttype['angeltype_id'] != null) {
$angeltype = AngelType($shifttype['angeltype_id']);
if ($angeltype === false)
engelsystem_error('Unable to load angeltype.');
}
 
return [
$shifttype['name'],
ShiftType_view($shifttype, $angeltype)
];
}
 
/**
* List all shift types.
*/
function shifttypes_list_controller() {
$shifttypes = ShiftTypes();
if ($shifttypes === false)
engelsystem_error("Unable to load shifttypes.");
 
return [
shifttypes_title(),
ShiftTypes_list_view($shifttypes)
];
}
 
/**
* Text for shift type related links.
*/
function shifttypes_title() {
return _("Shifttypes");
}
 
/**
* Route shift type actions
*/
function shifttypes_controller() {
if (! isset($_REQUEST['action']))
$_REQUEST['action'] = 'list';
 
switch ($_REQUEST['action']) {
default:
case 'list':
return shifttypes_list_controller();
case 'view':
return shifttype_controller();
case 'edit':
return shifttype_edit_controller();
case 'delete':
return shifttype_delete_controller();
}
}
 
?>