mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-26 08:39:07 +01:00
fix caching in browser, if iCal holiday url get set or changed
This commit is contained in:
parent
77d3ddb87e
commit
8d4134f683
@ -139,7 +139,7 @@ egw.extend('calendar', egw.MODULE_GLOBAL, function (_app, _wnd)
|
||||
// one widget listening for the response by the time it gets back,
|
||||
// and we can't do that when it's queued.
|
||||
_holiday_cache[year] = window.fetch(
|
||||
egw.link('/calendar/holidays.php', {year: year})
|
||||
egw.link('/calendar/holidays.php', {year: year, url: this.config('ical_holiday_url') || ''})
|
||||
).then((response) =>
|
||||
{
|
||||
return _holiday_cache[year] = response.json();
|
||||
|
@ -257,7 +257,7 @@ class Config
|
||||
'site_title','login_logo_file','login_logo_url','login_logo_title','favicon_file',
|
||||
'markuntranslated','link_list_thumbnail','enabled_spellcheck','debug_minify',
|
||||
'call_link','call_popup','fax_email','fax_email_regexp','geolocation_url', // addressbook
|
||||
'hide_birthdays','calview_no_consolidate','fw_mobile_app_list'), // calendar
|
||||
'hide_birthdays','calview_no_consolidate','fw_mobile_app_list', 'ical_holiday_url'), // calendar
|
||||
'projectmanager' => array('hours_per_workday', 'duration_units'),
|
||||
'manual' => array('manual_remote_egw_url'),
|
||||
'infolog' => array('status'),
|
||||
|
@ -158,7 +158,7 @@ class calendar_holidays
|
||||
* @param ?string $lang 2-digit iso language code or NULL
|
||||
* @return array|Iterator parsed events
|
||||
*/
|
||||
protected static function fetch($country, $lang=null)
|
||||
public static function fetch($country, $lang=null)
|
||||
{
|
||||
if (!($url = self::is_url($country) ? $country : self::ical_url($country, $lang)))
|
||||
{
|
||||
|
@ -840,7 +840,26 @@ END:VALARM';
|
||||
|
||||
public static function config_validate()
|
||||
{
|
||||
$GLOBALS['egw_info']['server']['found_validation_hook'] = array('calendar_purge_old');
|
||||
$GLOBALS['egw_info']['server']['found_validation_hook'] = [
|
||||
'calendar_purge_old',
|
||||
'ical_holiday_url' => 'calendar_hooks::ical_holiday_url',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate the iCal URL
|
||||
*
|
||||
* @param string $url
|
||||
* @param Api\Config $c
|
||||
* @return string|null error message or null on success
|
||||
*/
|
||||
public static function ical_holiday_url(string $url, Api\Config $c) : ?string
|
||||
{
|
||||
if (!empty($url) && (!preg_match('#^(/|https?://[^/]+/[^/]+)#', $url) || !calendar_holidays::fetch($url)))
|
||||
{
|
||||
return "Invalid iCalendar URL: $url";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -11,7 +11,7 @@
|
||||
<row>
|
||||
<et2-vbox>
|
||||
<et2-description value="Custom URL for iCal with holidays for all users" label="%s:"></et2-description>
|
||||
<et2-description label="(Without a custom URL we use nation of user preference to load holidays from %s)" href="https://www.thuderbird.net/en-US/calendar/holidays/" value="Mozilla Holiday Calendars" extraLinkTarget="_blank"></et2-description>
|
||||
<et2-description label="(Without a custom URL we use nation of user preference to load holidays from %s)" href="https://www.thunderbird.net/en-US/calendar/holidays/" value="Mozilla Holiday Calendars" extraLinkTarget="_blank"></et2-description>
|
||||
</et2-vbox>
|
||||
<et2-url id="newsettings[ical_holiday_url]"></et2-url>
|
||||
</row>
|
||||
|
Loading…
Reference in New Issue
Block a user