Co-authored-by: Camille Moussu <cmoussu@linagora.com>
This commit is contained in:
@@ -7,3 +7,4 @@ var SSO_CODE_CHALLENGE_METHOD = "S256";
|
|||||||
var SSO_POST_LOGOUT_REDIRECT = "http://example.com?logout=1";
|
var SSO_POST_LOGOUT_REDIRECT = "http://example.com?logout=1";
|
||||||
var CALENDAR_BASE_URL = "https://calendar.example.com";
|
var CALENDAR_BASE_URL = "https://calendar.example.com";
|
||||||
var MAIL_SPA_URL = "https://mail.example.com";
|
var MAIL_SPA_URL = "https://mail.example.com";
|
||||||
|
var DEBUG = false;
|
||||||
|
|||||||
@@ -16,6 +16,13 @@ export async function getEvent(event: CalendarEvent) {
|
|||||||
return { ...eventjson, ...event };
|
return { ...eventjson, ...event };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function dlEvent(event: CalendarEvent) {
|
||||||
|
const response = await api.get(`dav${event.URL}?export=`);
|
||||||
|
const eventData = await response.text();
|
||||||
|
|
||||||
|
return eventData;
|
||||||
|
}
|
||||||
|
|
||||||
export async function putEvent(event: CalendarEvent, calOwnerEmail?: string) {
|
export async function putEvent(event: CalendarEvent, calOwnerEmail?: string) {
|
||||||
const response = await api(`dav${event.URL}`, {
|
const response = await api(`dav${event.URL}`, {
|
||||||
method: "PUT",
|
method: "PUT",
|
||||||
|
|||||||
@@ -30,16 +30,17 @@ import VideocamIcon from "@mui/icons-material/Videocam";
|
|||||||
import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline";
|
import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline";
|
||||||
import CircleIcon from "@mui/icons-material/Circle";
|
import CircleIcon from "@mui/icons-material/Circle";
|
||||||
import CancelIcon from "@mui/icons-material/Cancel";
|
import CancelIcon from "@mui/icons-material/Cancel";
|
||||||
import CheckCircleIcon from "@mui/icons-material/CheckCircle";
|
import FileDownloadOutlinedIcon from "@mui/icons-material/FileDownloadOutlined";
|
||||||
import { userAttendee } from "../User/userDataTypes";
|
import { userAttendee } from "../User/userDataTypes";
|
||||||
import EventDisplayModal, {
|
import EventDisplayModal, {
|
||||||
InfoRow,
|
InfoRow,
|
||||||
renderAttendeeBadge,
|
renderAttendeeBadge,
|
||||||
stringAvatar,
|
stringAvatar,
|
||||||
} from "./EventDisplay";
|
} from "./EventDisplay";
|
||||||
import { getEvent } from "./EventApi";
|
import { dlEvent, getEvent } from "./EventApi";
|
||||||
import { CalendarEvent } from "./EventsTypes";
|
import { CalendarEvent } from "./EventsTypes";
|
||||||
import EventDuplication from "../../components/Event/EventDuplicate";
|
import EventDuplication from "../../components/Event/EventDuplicate";
|
||||||
|
import { getCalendar } from "../Calendars/CalendarApi";
|
||||||
|
|
||||||
export default function EventPreviewModal({
|
export default function EventPreviewModal({
|
||||||
eventId,
|
eventId,
|
||||||
@@ -123,6 +124,27 @@ export default function EventPreviewModal({
|
|||||||
gap: 1,
|
gap: 1,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
{(window as any).DEBUG && (
|
||||||
|
<IconButton
|
||||||
|
onClick={async () => {
|
||||||
|
const icsContent = await dlEvent(event);
|
||||||
|
const blob = new Blob([icsContent], {
|
||||||
|
type: "text/calendar",
|
||||||
|
});
|
||||||
|
const url = URL.createObjectURL(blob);
|
||||||
|
|
||||||
|
const link = document.createElement("a");
|
||||||
|
link.href = url;
|
||||||
|
link.download = `${eventId}.ics`;
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link);
|
||||||
|
URL.revokeObjectURL(url);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<FileDownloadOutlinedIcon />
|
||||||
|
</IconButton>
|
||||||
|
)}
|
||||||
<EventDuplication event={event} onClose={onClose} />
|
<EventDuplication event={event} onClose={onClose} />
|
||||||
{mailSpaUrl && attendees.length > 0 && (
|
{mailSpaUrl && attendees.length > 0 && (
|
||||||
<IconButton
|
<IconButton
|
||||||
|
|||||||
Reference in New Issue
Block a user