diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index aba8c5f191..e600c13481 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -16,7 +16,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v10.4.0 + - uses: actions/stale@v11.0.0 with: stale-issue-label: "stale" stale-pr-label: "stale" diff --git a/Web/css/librebooking.css b/Web/css/librebooking.css index b24eed65b2..aeaee91ae4 100644 --- a/Web/css/librebooking.css +++ b/Web/css/librebooking.css @@ -149,6 +149,11 @@ fieldset:disabled .btn { border-color: var(--primary-disabled); } +a.disabled { + pointer-events: none; + opacity: 0.5; +} + .link-primary { color: var(--primary) !important; text-decoration: none; diff --git a/Web/scripts/calendar.js b/Web/scripts/calendar.js index 64a8484ee1..2dadaab005 100644 --- a/Web/scripts/calendar.js +++ b/Web/scripts/calendar.js @@ -455,8 +455,20 @@ function Calendar(opts) { var url = _options.getSubscriptionUrl + '&rid=' + rid + '&sid=' + sid + '&gid=' + gid; ajaxGet( url, - function () {}, + function () { + // Disable the link while it may still reflect the previous filter selection. + // The href and inline onclick are dropped as well: pointer-events: none only + // blocks the mouse, so a focused link could otherwise still be activated with + // the keyboard and copy the stale subscription URL to the clipboard. + $('#subscribeToCalendar') + .addClass('disabled') + .attr('aria-disabled', 'true') + .removeAttr('onclick') + .removeAttr('href'); + }, function (response) { + // Re-enabling happens by replacement: the link lives inside #calendarSubscription + // and is rendered fresh, enabled, and carrying the current filter's URL. $('#calendarSubscription').html(response); } );