diff --git a/main/inc/ajax/agenda.ajax.php b/main/inc/ajax/agenda.ajax.php index 1d422b86df..bf69394cda 100644 --- a/main/inc/ajax/agenda.ajax.php +++ b/main/inc/ajax/agenda.ajax.php @@ -6,17 +6,86 @@ require_once '../global.inc.php'; -require_once api_get_path(LIBRARY_PATH).'skill.lib.php'; +require_once api_get_path(SYS_CODE_PATH).'calendar/agenda.inc.php'; +require_once api_get_path(SYS_CODE_PATH).'calendar/myagenda.inc.php'; +require_once api_get_path(SYS_CODE_PATH).'calendar/agenda.lib.php'; $action = isset($_REQUEST['a']) ? $_REQUEST['a'] : null; +$type = isset($_REQUEST['type']) && in_array($_REQUEST['type'], array('personal', 'course', 'admin')) ? $_REQUEST['type'] : 'personal'; -$skill = new Skill(); +$agenda = new Agenda(); +$agenda->type = $type; switch ($action) { - case 'add': - $skill->add($_REQUEST['name'], $_REQUEST['description'], $_REQUEST['parent']); + case 'add_event': + //For now we only save personal events + echo $agenda->add_event($_REQUEST['start'], $_REQUEST['end'], $_REQUEST['all_day'], $_REQUEST['view'], $_REQUEST['title'], $_REQUEST['content']); break; - + case 'edit_event': + $id_list = explode('_', $_REQUEST['id']); + //$type = $id_list[0]; + $id = $id_list[1]; + $agenda->edit_event($id, $_REQUEST['start'], $_REQUEST['end'], $_REQUEST['all_day'], $_REQUEST['view'], $_REQUEST['title'], $_REQUEST['content']); + break; + case 'delete_event': + $id_list = explode('_', $_REQUEST['id']); + //$type = $id_list[0]; + $id = $id_list[1]; + $agenda->delete_event($id); + break; + case 'move_event': + $day_delta = $_REQUEST['day_delta']; + $minute_delta = $_REQUEST['minute_delta']; + //$type = $_REQUEST['type'][0]; + $id = explode('_', $_REQUEST['id']); + $id = $id[1]; + $agenda->move_event($id, $day_delta, $minute_delta); + break; + case 'get_events': + $start = $_REQUEST['start']; + $end = $_REQUEST['end']; + $events = $agenda->get_events($start, $end, api_get_user_id(), api_get_course_int_id()); + echo $events; + break; + case 'get_user_agenda': + //Used in the admin user list + api_protect_admin_script(); + + if (api_is_allowed_to_edit(null, true)) { + //@todo move this in the agenda class + $DaysShort = api_get_week_days_short(); + $MonthsLong = api_get_months_long(); + + $user_id = intval($_REQUEST['user_id']); + $my_course_list = CourseManager::get_courses_list_by_user_id($user_id, true); + if (!is_array($my_course_list)) { + // this is for the special case if the user has no courses (otherwise you get an error) + $my_course_list = array(); + } + $today = getdate(); + $year = (!empty($_GET['year'])? (int)$_GET['year'] : NULL); + if ($year == NULL) { + $year = $today['year']; + } + $month = (!empty($_GET['month'])? (int)$_GET['month']:NULL); + if ($month == NULL) { + $month = $today['mon']; + } + $day = (!empty($_GET['day']) ? (int)$_GET['day']:NULL); + if ($day == NULL) { + $day = $today['mday']; + } + $monthName = $MonthsLong[$month -1]; + + $agendaitems = get_myagendaitems($user_id, $my_course_list, $month, $year); + $agendaitems = get_global_agenda_items($agendaitems, $day, $month, $year, $week, "month_view"); + + if (api_get_setting('allow_personal_agenda') == 'true') { + $agendaitems = get_personal_agenda_items($user_id, $agendaitems, $day, $month, $year, $week, "month_view"); + } + display_mymonthcalendar($user_id, $agendaitems, $month, $year, array(), $monthName, false); + } + break; default: echo ''; }