Files
Wallos/scripts/calendar.js
Miguel Ribeiro 11eaf402e8 feat!: complete ui overhaul (#1108)
feat: option for the week to start on sunday
feat: redesign login / registration pages
feat: more statistics
feat: declarative oidc settings
feat: grid view for subscriptions
feat: subscription details popup
feat: translate categories with ai
feat: google image search with serpapi
feat: selfh.st image search
feat: dashboard icons image search
fix: improve background removal feature for logos
feat: v2.0 api - write endpoints
fix: include todays subscriptions on amount due this month
fix: calendar occurrences to respect subscription start date
fix: honor configured outbound proxy for logo search without reopening httpoxy SSRF bypass
fix: remove hardcode string from the admin page
fix: ssrf via http proxy env var in payments logo search
fix: require cron auth guard on storetotalyearlycost.php
fix: validate per-user smtp host against ssrf
fix: escape iCal property values to prevent crlf injection
2026-07-11 23:54:52 +02:00

50 lines
1.5 KiB
JavaScript

function nextMonth(currentMonth, currentYear) {
let nextMonth = currentMonth + 1;
let nextYear = currentYear;
if (nextMonth > 12) {
nextMonth = 1;
nextYear += 1;
}
window.location.href = `calendar.php?month=${nextMonth}&year=${nextYear}`;
}
function prevMonth(currentMonth, currentYear) {
let prevMonth = currentMonth - 1;
let prevYear = currentYear;
if (prevMonth < 1) {
prevMonth = 12;
prevYear -= 1;
}
window.location.href = `calendar.php?month=${prevMonth}&year=${prevYear}`;
}
function currentMoth() {
window.location.href = `calendar.php`;
}
function showExportPopup() {
const host = window.location.href;
const apiPath = "api/subscriptions/get_ical_feed.php";
const apiKey = document.getElementById('apiKey').value;
const queryParams = `?api_key=${apiKey}`;
const fullUrl = host.replace('calendar.php', apiPath) + queryParams;
document.getElementById('iCalendarUrl').value = fullUrl;
document.getElementById('subscriptions_calendar').classList.add('is-open');
}
function closePopup() {
document.getElementById('subscriptions_calendar').classList.remove('is-open');
}
function copyToClipboard() {
const urlField = document.getElementById('iCalendarUrl');
urlField.select();
urlField.setSelectionRange(0, 99999); // For mobile devices
navigator.clipboard.writeText(urlField.value)
.then(() => {
showSuccessMessage(translate('copied_to_clipboard'));
})
.catch(() => {
showErrorMessage(translate('unknown_error'));
});
}