diff options
author | Philip Häusler <msquare@notrademark.de> | 2013-09-10 14:27:31 +0200 |
---|---|---|
committer | Philip Häusler <msquare@notrademark.de> | 2013-09-10 14:27:31 +0200 |
commit | a47b1935cb6310e05e4e6b15512b21b7cd4eec3c (patch) | |
tree | c966f9f44aace4f40baf2d55bd7c9ffc6c45a85f /includes/controller | |
parent | 4b2284797641c7c824a6d5efe32bd48884223d94 (diff) |
#119 added basic shift json export support using same pattern like ical export
Diffstat (limited to 'includes/controller')
-rw-r--r-- | includes/controller/shifts_controller.php | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php new file mode 100644 index 00000000..1cd7b5d6 --- /dev/null +++ b/includes/controller/shifts_controller.php @@ -0,0 +1,34 @@ +<?php + +/** + * Export filtered shifts via JSON. (Like iCal Export or shifts view) + */ +function shifts_json_export_controller() { + global $ical_shifts, $user; + + if (isset ($_REQUEST['key']) && preg_match("/^[0-9a-f]{32}$/", $_REQUEST['key'])) + $key = $_REQUEST['key']; + else + die("Missing key."); + + $user = User_by_api_key($key); + if($user === false) + die("Unable to find user."); + if($user == null) + die("Key invalid."); + if(!in_array('shifts_json_export', privileges_for_user($user['UID']))) + die("No privilege for shifts_json_export."); + + if (isset ($_REQUEST['export']) && $_REQUEST['export'] == 'user_shifts') { + require_once ('includes/pages/user_shifts.php'); + view_user_shifts(); + } else { + $ical_shifts = sql_select("SELECT `Shifts`.*, `Room`.`Name` as `room_name` FROM `ShiftEntry` INNER JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID`) INNER JOIN `Room` ON (`Shifts`.`RID` = `Room`.`RID`) WHERE `UID`=" . sql_escape($user['UID']) . " ORDER BY `start`"); + } + + header("Content-Type: application/json; charset=utf-8"); + echo json_encode($ical_shifts); + die(); +} + +?>
\ No newline at end of file |