mirror of
https://github.com/ellite/Wallos.git
synced 2026-07-31 10:16:03 -04:00
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
50 lines
1.5 KiB
JavaScript
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'));
|
|
});
|
|
} |