AutorÃa | Ultima modificación | Ver Log |
// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** A javascript module to handle calendar ajax actions.** @module core_calendar/repository* @copyright 2017 Simey Lameze <lameze@moodle.com>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/import Ajax from 'core/ajax';/*** Delete a calendar event.** @method deleteEvent* @param {number} eventId The event id.* @param {boolean} deleteSeries Whether to delete all events in the series* @return {promise} Resolved with requested calendar event*/export const deleteEvent = (eventId, deleteSeries = false) => {const request = {methodname: 'core_calendar_delete_calendar_events',args: {events: [{eventid: eventId,repeat: deleteSeries,}]}};return Ajax.call([request])[0];};/*** Get a calendar event by id.** @method getEventById* @param {number} eventId The event id.* @return {promise} Resolved with requested calendar event*/export const getEventById = (eventId) => {const request = {methodname: 'core_calendar_get_calendar_event_by_id',args: {eventid: eventId}};return Ajax.call([request])[0];};/*** Submit the form data for the event form.** @method submitCreateUpdateForm* @param {string} formData The URL encoded values from the form* @return {promise} Resolved with the new or edited event*/export const submitCreateUpdateForm = (formData) => {const request = {methodname: 'core_calendar_submit_create_update_form',args: {formdata: formData}};return Ajax.call([request])[0];};/*** Get calendar data for the month view.** @method getCalendarMonthData* @param {number} year Year* @param {number} month Month* @param {number} courseId The course id.* @param {number} categoryId The category id.* @param {boolean} includeNavigation Whether to include navigation.* @param {boolean} mini Whether the month is in mini view.* @param {number} day Day (optional)* @param {string} view The calendar view mode.* @return {promise} Resolved with the month view data.*/export const getCalendarMonthData = (year, month, courseId, categoryId, includeNavigation, mini, day = 1, view = 'month') => {const request = {methodname: 'core_calendar_get_calendar_monthly_view',args: {year,month,courseid: courseId,categoryid: categoryId,includenavigation: includeNavigation,mini,day,view,}};return Ajax.call([request])[0];};/*** Get calendar data for the day view.** @method getCalendarDayData* @param {number} year Year* @param {number} month Month* @param {number} day Day* @param {number} courseId The course id.* @param {number} categoryId The id of the category whose events are shown* @return {promise} Resolved with the day view data.*/export const getCalendarDayData = (year, month, day, courseId, categoryId) => {const request = {methodname: 'core_calendar_get_calendar_day_view',args: {year,month,day,courseid: courseId,categoryid: categoryId,}};return Ajax.call([request])[0];};/*** Change the start day for the given event id. The day timestamp* only has to be any time during the target day because only the* date information is extracted, the time of the day is ignored.** @param {int} eventId The id of the event to update* @param {int} dayTimestamp A timestamp for some time during the target day* @return {promise}*/export const updateEventStartDay = (eventId, dayTimestamp) => {const request = {methodname: 'core_calendar_update_event_start_day',args: {eventid: eventId,daytimestamp: dayTimestamp}};return Ajax.call([request])[0];};/*** Get calendar upcoming data.** @method getCalendarUpcomingData* @param {number} courseId The course id.* @param {number} categoryId The category id.* @return {promise} Resolved with the month view data.*/export const getCalendarUpcomingData = (courseId, categoryId) => {const request = {methodname: 'core_calendar_get_calendar_upcoming_view',args: {courseid: courseId,categoryid: categoryId,}};return Ajax.call([request])[0];};/*** Get the groups by course id.** @param {Number} courseId The course id to fetch the groups from.* @return {promise} Resolved with the course groups.*/export const getCourseGroupsData = (courseId) => {const request = {methodname: 'core_group_get_course_groups',args: {courseid: courseId}};return Ajax.call([request])[0];};/*** Delete calendar subscription by id.** @param {Number} subscriptionId The subscription id* @return {promise}*/export const deleteSubscription = (subscriptionId) => {const request = {methodname: 'core_calendar_delete_subscription',args: {subscriptionid: subscriptionId}};return Ajax.call([request])[0];};