%PDF- %PDF-
Direktori : /home/vacivi36/ava/calendar/amd/src/ |
Current File : /home/vacivi36/ava/calendar/amd/src/repository.js |
// 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]; };