implement button to create event in nextcloud
This commit is contained in:
1 parent
b424abe8e4
commit
88a9827de2
2 files changed
+96
No files matched your search
@@ -357,9 +357,12 @@ const meetingStartInput = document.getElementById("meetingStart");
|
||||
const meetingEndInput = document.getElementById("meetingEnd");
|
||||
const meetingOrganizerInput = document.getElementById("meetingOrganizer");
|
||||
const createMeetingButton = document.getElementById("createMeetingButton");
|
||||
const createNextcloudButton = document.getElementById('createNextcloudButton');
|
||||
const createAdhocButton = document.getElementById("createAdhocButton");
|
||||
const cancelCreateButton = document.getElementById("cancelCreateButton");
|
||||
const icsSuccess = document.getElementById("icsSuccess");
|
||||
const nextcloudStatus = document.getElementById('nextcloudStatus');
|
||||
const nextcloudError = document.getElementById('nextcloudError');
|
||||
const downloadIcsLink = document.getElementById("downloadIcsLink");
|
||||
const adhocResult = document.getElementById("adhocResult");
|
||||
const adhocLink = document.getElementById("adhocLink");
|
||||
@@ -1000,6 +1003,85 @@ function showMeetingCreator() {
|
||||
meetingEndInput.value = formatLocal(end);
|
||||
}
|
||||
|
||||
function openNextcloudCalendarCreator() {
|
||||
const meetingName =
|
||||
meetingNameInput.value.trim();
|
||||
|
||||
const description =
|
||||
meetingDescriptionInput.value.trim();
|
||||
|
||||
const startTime =
|
||||
meetingStartInput.value;
|
||||
|
||||
const endTime =
|
||||
meetingEndInput.value;
|
||||
|
||||
const organizer =
|
||||
meetingOrganizerInput.value.trim();
|
||||
|
||||
if (!meetingName) {
|
||||
alert('Please enter a meeting name.');
|
||||
meetingNameInput.focus();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!startTime || !endTime) {
|
||||
alert('Please enter start and end time.');
|
||||
return;
|
||||
}
|
||||
|
||||
const start = new Date(startTime);
|
||||
const end = new Date(endTime);
|
||||
|
||||
if (Number.isNaN(start.getTime()) ||
|
||||
Number.isNaN(end.getTime())) {
|
||||
alert('Invalid start or end date.');
|
||||
return;
|
||||
}
|
||||
|
||||
if (end <= start) {
|
||||
alert('End time must be after start time.');
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Use exactly the same room-generation logic as the
|
||||
* existing ICS creation.
|
||||
*/
|
||||
const roomName = createRoomName(meetingName);
|
||||
|
||||
const meetingUrl =
|
||||
createLaunchUrl(roomName);
|
||||
|
||||
const nextcloudBase =
|
||||
'https://cloud.bnvb-ingenieure.de';
|
||||
|
||||
const params = new URLSearchParams();
|
||||
|
||||
params.set('summary', meetingName);
|
||||
|
||||
if (description) {
|
||||
params.set('description', description);
|
||||
}
|
||||
|
||||
params.set('start', startTime);
|
||||
params.set('end', endTime);
|
||||
|
||||
if (organizer) {
|
||||
params.set('organizer', organizer);
|
||||
}
|
||||
|
||||
params.set('location', meetingUrl);
|
||||
params.set('url', meetingUrl);
|
||||
|
||||
const nextcloudUrl =
|
||||
nextcloudBase +
|
||||
'/index.php/apps/jitsi_calendar/confirm?' +
|
||||
params.toString();
|
||||
|
||||
window.location.href = nextcloudUrl;
|
||||
}
|
||||
|
||||
function createMeeting() {
|
||||
const meetingName = meetingNameInput.value.trim();
|
||||
const description = meetingDescriptionInput.value.trim();
|
||||
@@ -1262,6 +1344,13 @@ createMeetingButton.addEventListener(
|
||||
createMeeting
|
||||
);
|
||||
|
||||
if (createNextcloudButton) {
|
||||
createNextcloudButton.addEventListener(
|
||||
'click',
|
||||
openNextcloudCalendarCreator
|
||||
);
|
||||
}
|
||||
|
||||
createAdhocButton.addEventListener(
|
||||
"click",
|
||||
createAdhocLink
|
||||
|
||||
Reference in new issue
Block a user