Version 4.7.13

This commit is contained in:
Neo committed 2025-12-19 16:14:56 -08:00
1 parent fd22d99e69
commit 7124a02564
954 files changed
+29277 -59308

No files matched your search

+11 -9
View File
@@ -3,14 +3,8 @@
"lang_key": "menu__calendar_calendars_calendars",
"restriction": "calendars_manage",
"keywords": [
"calendars"
]
},
"app=calendar&module=calendars&controller=calendars": {
"lang_key": "menu__calendar_calendars_calendars",
"restriction": "calendars_manage",
"keywords": [
"edit calendar"
"edit calendar",
"events"
]
},
"app=calendar&module=calendars&controller=calendars&do=permissions": {
@@ -181,7 +175,8 @@
"lang_key": "menu__calendar_calendars_settings",
"restriction": "settings_manage",
"keywords": [
"calendar settings"
"calendar settings",
"events"
]
},
"app=calendar&module=calendars&controller=settings&searchResult=calendar_rss_feed_days": {
@@ -234,5 +229,12 @@
"monday",
"sunday"
]
},
"app=calendar&module=calendars&controller=venues": {
"lang_key": "menu__calendar_calendars_venues",
"restriction": null,
"keywords": [
"events"
]
}
}
+3 -2
View File
@@ -20,7 +20,7 @@
<setting key="map_center_lon"><![CDATA[{"key":"map_center_lon","default":"-79.1429788","report":"none"}]]></setting>
<widget key="upcomingEvents"><![CDATA[{"class":"\\IPS\\Widget\\PermissionCache","restrict":["sidebar","cms"],"default_area":"","allow_reuse":true,"menu_style":"menu","embeddable":true}]]></widget>
<widget key="recentReviews"><![CDATA[{"class":"\\IPS\\Widget\\PermissionCache","restrict":[],"default_area":"","allow_reuse":false,"menu_style":"menu","embeddable":true}]]></widget>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars"><![CDATA[{"lang_key":"menu__calendar_calendars_calendars","restriction":"calendars_manage","keywords":["edit calendar"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars"><![CDATA[{"lang_key":"menu__calendar_calendars_calendars","restriction":"calendars_manage","keywords":["edit calendar","events"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;do=permissions"><![CDATA[{"lang_key":"menu__calendar_calendars_calendars","restriction":"calendars_manage","keywords":["calendar permissions"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=cal_comment_moderate"><![CDATA[{"lang_key":"cal_comment_moderate","restriction":"calendars_manage","keywords":["approved","comments must be approved","require approval"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_1_cal_allow_comments"><![CDATA[{"lang_key":"cal_allow_comments","restriction":"calendars_manage","keywords":["allow comments","comments"]}]]></acpsearch>
@@ -42,11 +42,12 @@
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=ical&amp;do=upload&amp;searchResult=form_feed_calendar_id"><![CDATA[{"lang_key":"feed_calendar_id","restriction":"calendar_feeds_manage","keywords":["calendar"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=ical&amp;do=upload&amp;searchResult=form_feed_file"><![CDATA[{"lang_key":"feed_file","restriction":"calendar_feeds_manage","keywords":["iCalendar file"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=ical&amp;do=upload&amp;searchResult=form_feed_member_id"><![CDATA[{"lang_key":"feed_member_id","restriction":"calendar_feeds_manage","keywords":["member"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings"><![CDATA[{"lang_key":"menu__calendar_calendars_settings","restriction":"settings_manage","keywords":["calendar settings"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings"><![CDATA[{"lang_key":"menu__calendar_calendars_settings","restriction":"settings_manage","keywords":["calendar settings","events"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings&amp;searchResult=calendar_rss_feed_days"><![CDATA[{"lang_key":"calendar_rss_feed_days","restriction":"settings_manage","keywords":["days","feed days","forthcoming days","number of days","RSS Feed"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings&amp;searchResult=form_calendar_date_format"><![CDATA[{"lang_key":"calendar_date_format","restriction":"settings_manage","keywords":["calendar date format"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings&amp;searchResult=form_calendar_default_view"><![CDATA[{"lang_key":"calendar_default_view","restriction":"settings_manage","keywords":["calendar layout"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings&amp;searchResult=form_calendar_rss_feed"><![CDATA[{"lang_key":"calendar_rss_feed","restriction":"settings_manage","keywords":["calendar rss","events rss"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings&amp;searchResult=form_calendar_venues_enabled"><![CDATA[{"lang_key":"calendar_venues_enabled","restriction":"settings_manage","keywords":["address","venue","venues"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=settings&amp;searchResult=form_ipb_calendar_mon"><![CDATA[{"lang_key":"ipb_calendar_mon","restriction":"settings_manage","keywords":["calendar start","monday","sunday"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=venues"><![CDATA[{"lang_key":"menu__calendar_calendars_venues","restriction":null,"keywords":["events"]}]]></acpsearch>
</build>
@@ -34,6 +34,9 @@
"Permissions": {
"Permissions": "IPS\\calendar\\extensions\\core\\Permissions\\Permissions"
},
"Statistics": {
"Rsvp": "IPS\\calendar\\extensions\\core\\Statistics\\Rsvp"
},
"StreamItems": {
"StreamItems": "IPS\\calendar\\extensions\\core\\StreamItems\\StreamItems"
}
+5 -1
View File
@@ -95,6 +95,10 @@
"calendar": {
"friendly": "",
"real": "app=calendar&module=calendar&controller=view"
}
},
"calendar_event_search": {
"friendly": "event-search",
"real": "app=calendar&module=calendar&controller=view&do=search"
}
}
}
+32 -19
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="calendar">
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.main.js" javascript_type="controller" javascript_version="107643" javascript_position="1000050"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.main.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -112,7 +112,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="107643" javascript_position="1000050"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -231,7 +231,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.carousel.js" javascript_type="controller" javascript_version="107643" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.carousel.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -291,7 +291,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.eventList.js" javascript_type="controller" javascript_version="107643" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.eventList.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -409,7 +409,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.nearMe.js" javascript_type="controller" javascript_version="107643" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.nearMe.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -776,7 +776,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.search.js" javascript_type="controller" javascript_version="107643" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.search.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -837,9 +837,11 @@ var PER_PAGE = 16;
// Get map ready to show
if( ips.getSetting( 'mapProvider' ) === 'google' ){
this.setupGoogle();
} else {
} else if( ips.getSetting( 'mapProvider' ) === 'mapbox' ){
this.setupMapbox();
}
} else {
this._mapContainer.hide(); // hide map container if no map
}
},
setupGoogle: function(){
@@ -1044,7 +1046,15 @@ var PER_PAGE = 16;
// @todo sort
params.push("sortBy=" + this._currentSort);
return this._baseURL + '&' + params.join('&');
if( this._baseURL.match(/\?/) ) {
if( this._baseURL.slice(-1) != '?' ){
this._baseURL += '&';
}
} else {
this._baseURL += '?';
}
return this._baseURL + params.join('&');
},
/**
@@ -1063,7 +1073,9 @@ var PER_PAGE = 16;
}
this._resultsContainer.removeClass('ipsHide').html( this.getPlaceholders(6) );
this._mapContainer.addClass('cEvents__searchMap--loading').show();
if( ips.getSetting('mapProvider') !== 'none') {
this._mapContainer.addClass('cEvents__searchMap--loading').show();
}
this._currentUrl = url;
ips.getAjax()( url )
@@ -1099,9 +1111,11 @@ var PER_PAGE = 16;
_updateMap: function ( markers ){
if( ips.getSetting( 'mapProvider' ) === 'google' ){
this._updateGoogleMap( markers );
} else {
} else if( ips.getSetting( 'mapProvider' ) === 'mapbox' ) {
this._updateMapboxMap( markers );
}
} else {
this._mapContainer.hide(); // we really don't need it.
}
},
_updateGoogleMap: function (markers){
@@ -1342,7 +1356,7 @@ var PER_PAGE = 16;
});
}(jQuery, _));
]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="107643" javascript_position="1000150"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="107712" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1915,7 +1929,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/venue" javascript_name="ips.venue.main.js" javascript_type="controller" javascript_version="107643" javascript_position="1000200"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/venue" javascript_name="ips.venue.main.js" javascript_type="controller" javascript_version="107712" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2027,7 +2041,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="107643" javascript_position="1000250"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="107712" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2110,7 +2124,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="107643" javascript_position="1000250">/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="107712" javascript_position="1000250">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2220,7 +2234,7 @@ var PER_PAGE = 16;
});
}(jQuery, _));
</file>
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="107643" javascript_position="1000300"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="107712" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*/
@@ -2229,7 +2243,7 @@ var PER_PAGE = 16;
ips.templates.set('calendar.reminder.loading', " \
<div class='ipsLoading ipsLoading_tiny'></div>\
");]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.overview.js" javascript_type="template" javascript_version="107643" javascript_position="1000300"><![CDATA[ips.templates.set("eventLoading", "\
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.overview.js" javascript_type="template" javascript_version="107712" javascript_position="1000300"><![CDATA[ips.templates.set("eventLoading", "\
<li class='ipsBox ipsBox--child event event--withImage event--loading'>\
<div class='cEvents__skeleton cEvents__skeleton--eventImage'></div>\
<div class='cEvents__details'>\
@@ -2255,7 +2269,6 @@ controllers</order>
<order app="global" path="/dev/js//library/">underscore
jquery
mustache
IntersectionObserver
Debug.js
app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
+4 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="calendar" version="107643">
<app key="calendar" version="107712">
<word key="__app_calendar" js="0">Events</word>
<word key="frontnavigation_calendar" js="0">Events</word>
<word key="__indefart_calendar_event_comment" js="0">a comment on an event</word>
@@ -41,6 +41,8 @@
<word key="r__calendar_feeds_add" js="0">Can add iCalendar feed imports?</word>
<word key="r__calendar_feeds_edit" js="0">Can edit iCalendar feed imports?</word>
<word key="r__calendar_feeds_delete" js="0">Can delete iCalendar feed imports?</word>
<word key="r__rsvp" js="0">Statistics</word>
<word key="r__rsvp_manage" js="0">Can view RSVP statistics?</word>
<word key="loc_calendar_viewing_calendar" js="0">Viewing Calendar: %s</word>
<word key="loc_calendar_viewing_calendar_all" js="0">Viewing Calendar</word>
<word key="loc_calendar_viewing_event" js="0">Viewing Event: %s</word>
@@ -342,6 +344,7 @@
<word key="no_event_review" js="0">You do not have permission to review events</word>
<word key="task_BAD_CONTENT" js="0">The iCalendar feed %s is not correctly formatted in a recognized iCalendar format</word>
<word key="task_NO_CONTENT" js="0">The iCalendar feed %s did not return any events to process</word>
<word key="subscribe_button" js="0">Subscribe</word>
<word key="subscribe_webcal" js="0">Subscribe to iCalendar feed</word>
<word key="download_webcal" js="0">Download iCalendar export</word>
<word key="calendar_id" js="0">Calendar</word>
+109 -101
View File
@@ -86,7 +86,7 @@
{{endif}}
<div class="ipsPageHeader ipsResponsive_pull ipsBox ipsPadding ipsMargin_bottom" id='elCalendarsHeader'>
<div class="ipsFlex ipsFlex-fw:wrap ipsFlex-ai:center sm:ipsFlex-fd:column sm:ipsFlex-ai:stretch ipsGap:2">
<div class="ipsFlex ipsFlex-fw:wrap ipsFlex-ai:center ipsGap:2">
<div class='ipsFlex-flex:11'>
<span class="ipsType_pageTitle">
{{if $thisCalendar and $club = $thisCalendar->club()}}
@@ -94,34 +94,29 @@
{{else}}
<a href='#elCalendars_menu' id='elCalendars' data-ipsMenu data-ipsMenu-appendTo="#elCalendarsHeader" class='ipsType_blendLinks'>{{if $thisCalendar}}{$thisCalendar->_title}{{else}}{lang="all_calendars"}{{endif}} &nbsp;<i class='fa fa-caret-down'></i></a>
{{endif}}
&nbsp;&nbsp;<a href='#elCalendarSettings_menu' id='elCalendarSettings' data-ipsMenu data-ipsMenu-alignCenter data-ipsMenu-appendTo="#elCalendarsHeader" class='ipsType_blendLinks'><i class='fa fa-cog'></i></a>
<a href='#elCalendarJump' data-ipsMenu data-ipsMenu-menuID='elCalendarJump' data-ipsMenu-closeOnClick='false' class='ipsButton ipsButton_light ipsButton_small ipsResponsive_hidePhone ipsResponsive_inlineBlock'>{lang="jump_to"} <i class='fa fa-caret-down'></i></a>
</span>
</div>
{{if $thisCalendar}}
<div class='ipsFlex-flex:00'>
<div class='ipsResponsive_hidePhone'>
{template="follow" app="core" group="global" params="'calendar', 'calendar', $thisCalendar->id, \IPS\calendar\Event::containerFollowerCount( $thisCalendar )"}
</div>
<ul class="ipsToolList ipsToolList_horizontal ipsResponsive_showPhone ipsResponsive_block ipsClearfix ipsMargin_vertical:none">
{{if ( $thisCalendar AND $thisCalendar->can('add') ) OR ( !$thisCalendar AND \IPS\calendar\Calendar::canOnAny('add') )}}
{{if $thisCalendar}}
<li><a href='{url="app=calendar&module=calendar&controller=submit&calendar={$thisCalendar->id}" seoTemplate="calendar_submit"}' class='ipsButton ipsButton_important ipsButton_normal ipsButton_fullWidth'>{lang="create_event"}</a></li>
{{else}}
<li><a href='{url="app=calendar&module=calendar&controller=submit" seoTemplate="calendar_submit"}' class='ipsButton ipsButton_important ipsButton_normal ipsButton_fullWidth'>{lang="create_event"}</a></li>
{{endif}}
<li><a href='#elCalendarJump' data-ipsMenu data-ipsMenu-menuID='elCalendarJump' data-ipsMenu-closeOnClick='false' class='ipsButton ipsButton_light ipsButton_fullWidth ipsButton_normal'>{lang="jump_to"} <i class='fa fa-caret-down'></i></a></li>
{{endif}}
</ul>
<div class='ipsFlex-flex:00'>
<div class='ipsFlex ipsFlex-ai:center ipsGap:2'>
{{if $thisCalendar and \IPS\Application::appIsEnabled('cloud')}}
{template="analyticsButton" app="cloud" group="analytics" params="$thisCalendar, $thisCalendar->id"}
{{endif}}
<a href='#elCalendarSettings_menu' id='elCalendarSettings' data-ipsMenu data-ipsMenu-alignCenter data-ipsMenu-appendTo="#elCalendarsHeader" class='ipsButton ipsButton_light ipsButton_verySmall'>{lang="subscribe_button"} <i class='fa fa-caret-down'></i></a>
<a href='#elCalendarJump' data-ipsMenu data-ipsMenu-menuID='elCalendarJump' data-ipsMenu-closeOnClick='false' class='ipsButton ipsButton_light ipsButton_verySmall'>{lang="jump_to"} <i class='fa fa-caret-down'></i></a>
{{if $thisCalendar}}
<div class='ipsResponsive_hidePhone'>
{template="follow" app="core" group="global" params="'calendar', 'calendar', $thisCalendar->id, \IPS\calendar\Event::containerFollowerCount( $thisCalendar )"}
</div>
{{endif}}
</div>
{{endif}}
</div>
</div>
</div>
{$jump->customTemplate( array( \IPS\Theme::i()->getTemplate( 'browse' ), 'dateJump' ) )|raw}
<ul class='ipsMenu ipsMenu_auto ipsHide' id='elCalendars_menu'>
<li class='ipsMenu_item'><a href='{url="app=calendar&module=calendar&controller=view" seoTemplate="calendar"}'><span class='cCalendarIcon cEvents_style_blank'></span> {lang="all_calendars"}</a></li>
<li class='ipsMenu_item'><a href='{url="app=calendar&module=calendar&controller=view&view=month" seoTemplate="calendar"}'><span class='cCalendarIcon cEvents_style_blank'></span> {lang="all_calendars"}</a></li>
{{foreach $calendars as $calendar}}
{{if $club = $calendar->club()}}
<li class='ipsMenu_item'><a href='{$calendar->url()}'><span class='cCalendarIcon cEvents_style_blank'></span> {lang="club_node" sprintf="$club->name, $calendar->_title"}</a></li>
@@ -130,11 +125,7 @@
{{endif}}
{{endforeach}}
</ul>
<ul class='ipsMenu ipsMenu_auto ipsHide' id='elCalendarSettings_menu'>
<li class='ipsMenu_title'>{{if $thisCalendar}}{lang="with_calendar" sprintf="$thisCalendar->_title"}{{else}}{lang="with_all_calendars"}{{endif}}</li>
<li class='ipsMenu_item'><a href='{{if $thisCalendar}}{$downloadLinks['iCalCalendar']}{{else}}{$downloadLinks['iCalAll']}{{endif}}'><i class='fa fa-download'></i> {lang="download_webcal"}</a></li>
<li class='ipsMenu_item'><a href='{expression="str_replace( array( 'http://', 'https://' ), 'webcal://', $thisCalendar ? $downloadLinks['iCalCalendar'] : $downloadLinks['iCalAll'] )"}'><i class='fa fa-calendar'></i> {lang="subscribe_webcal"}</a></li>
</ul>
{template="subscribeMenu" app="calendar" group="global" params="$thisCalendar, $downloadLinks"}
]]></template>
<template template_group="browse" template_name="calendarMonth" template_data="$calendars, $date, $events, $today, $thisCalendar, $jump, $startDates=array()" template_location="front" template_app="calendar"><![CDATA[<div class='ipsBox'>
<div class='ipsPager cCalendarNav ipsPadding ipsAreaBackground_light ipsBorder_bottom lg:ipsPos_sticky'>
@@ -490,7 +481,7 @@
<div><a href='{$event->container()->club()->url()}'>{$event->container()->club()->name}</a></div>
</li>
{{endif}}
{{if $event->venue}}
{{if $event->venue AND $event->venue()}}
<li>
<i class='fa fa-map-marker'></i>
<div>{expression="\IPS\Member::loggedIn()->language()->get( $event->venue()->_titleLanguageKey )"}</div>
@@ -1252,6 +1243,13 @@
{{endif}}
</div>
</div>
{{endif}}]]></template>
<template template_group="global" template_name="subscribeMenu" template_data="$thisCalendar, $downloadLinks" template_location="front" template_app="calendar"><![CDATA[{{if $downloadLinks}}
<ul class='ipsMenu ipsMenu_auto ipsHide' id='elCalendarSettings_menu'>
<li class='ipsMenu_title'>{{if $thisCalendar}}{lang="with_calendar" sprintf="$thisCalendar->_title"}{{else}}{lang="with_all_calendars"}{{endif}}</li>
<li class='ipsMenu_item'><a href='{{if $thisCalendar}}{$downloadLinks['iCalCalendar']}{{else}}{$downloadLinks['iCalAll']}{{endif}}'><i class='fa fa-download'></i> {lang="download_webcal"}</a></li>
<li class='ipsMenu_item'><a href='{expression="str_replace( array( 'http://', 'https://' ), 'webcal://', $thisCalendar ? $downloadLinks['iCalCalendar'] : $downloadLinks['iCalAll'] )"}'><i class='fa fa-calendar'></i> {lang="subscribe_webcal"}</a></li>
</ul>
{{endif}}]]></template>
<template template_group="livesearch" template_name="calendar" template_data="$calendar" template_location="admin" template_app="calendar"><![CDATA[<li class='ipsPad_half ipsClearfix' data-role='result'>
<a href='{url="app=calendar&module=calendars&controller=calendars&do=form&id="}{$calendar->id}' class='ipsPos_left'>{$calendar->_title}</a>
@@ -1356,73 +1354,79 @@
</div>
</div>
</section>]]></template>
<template template_group="overview" template_name="header" template_data="$date, $thisCalendar=NULL" template_location="front" template_app="calendar"><![CDATA[
<div class="ipsPageHeader ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsMargin_bottom">
<h2 class="ipsType_pageTitle">{lang="frontnavigation_calendar"}</h2>
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix">
<li class="ipsToolList_primaryAction">
{{if \IPS\Application::appIsEnabled('cloud') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'cloud', 'livetopics' ) ) and \IPS\cloud\LiveTopic::canCreate( \IPS\Member::loggedIn() )}}
<a href="#elEventCreate_menu" id="elEventCreate" class="ipsButton ipsButton_medium ipsButton_important" data-ipsMenu>{lang="livetopic_create_event"} <i class="fa fa-caret-down"></i></a>
<ul id="elEventCreate_menu" class="ipsMenu ipsMenu_normal ipsHide">
<li class="ipsMenu_item" data-menuItem="livetopic">
{{if !\IPS\Settings::i()->club_nodes_in_apps and $theOnlyNode = \IPS\calendar\Calendar::theOnlyNode() }}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit&do=livetopic&id={$theOnlyNode->_id}" seoTemplate="calendar_submit"}">{lang="event_create_livetopic"}</a>
{{elseif ( $thisCalendar AND $thisCalendar->can('add') )}}
<a class="ipsMenu_link" href='{url="app=calendar&module=calendar&controller=submit&do=livetopic&id={$thisCalendar->_id}" seoTemplate="calendar_submit"}' data-ipsTooltip title='{lang="add_event"}'>{lang="event_create_livetopic"}</a>
{{elseif \IPS\calendar\Calendar::canOnAny('add')}}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit&do=livetopic" seoTemplate="calendar_submit"}">{lang="event_create_livetopic"}</a>
{{endif}}
<template template_group="overview" template_name="header" template_data="$date, $thisCalendar=NULL, $downloadLinks=NULL" template_location="front" template_app="calendar"><![CDATA[
<div class="ipsPageHeader ipsMargin_bottom">
<div class="ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsGap:3 sm:ipsFlex-fd:column">
<h2 class="ipsType_pageTitle">{lang="frontnavigation_calendar"}</h2>
<ul class="ipsToolList ipsToolList_horizontal ipsClearfix">
<li class="ipsToolList_primaryAction">
{{if \IPS\Application::appIsEnabled('cloud') and \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'cloud', 'livetopics' ) ) and \IPS\cloud\LiveTopic::canCreate( \IPS\Member::loggedIn() )}}
<a href="#elEventCreate_menu" id="elEventCreate" class="ipsButton ipsButton_medium ipsButton_important" data-ipsMenu>{lang="livetopic_create_event"} <i class="fa fa-caret-down"></i></a>
<ul id="elEventCreate_menu" class="ipsMenu ipsMenu_normal ipsHide">
<li class="ipsMenu_item" data-menuItem="livetopic">
{{if !\IPS\Settings::i()->club_nodes_in_apps and $theOnlyNode = \IPS\calendar\Calendar::theOnlyNode() }}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit&do=livetopic&id={$theOnlyNode->_id}" seoTemplate="calendar_submit"}">{lang="event_create_livetopic"}</a>
{{elseif ( $thisCalendar AND $thisCalendar->can('add') )}}
<a class="ipsMenu_link" href='{url="app=calendar&module=calendar&controller=submit&do=livetopic&id={$thisCalendar->_id}" seoTemplate="calendar_submit"}' data-ipsTooltip title='{lang="add_event"}'>{lang="event_create_livetopic"}</a>
{{elseif \IPS\calendar\Calendar::canOnAny('add')}}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit&do=livetopic" seoTemplate="calendar_submit"}">{lang="event_create_livetopic"}</a>
{{endif}}
</li>
<li class="ipsMenu_item" data-menuItem="event">
{{if !\IPS\Settings::i()->club_nodes_in_apps and $theOnlyNode = \IPS\calendar\Calendar::theOnlyNode() }}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit&do=submit&id={$theOnlyNode->_id}" seoTemplate="calendar_submit"}">{lang="event_create_normal"}</a>
{{elseif ( $thisCalendar AND $thisCalendar->can('add') )}}
<a class="ipsMenu_link" href='{url="app=calendar&module=calendar&controller=submit&do=submit&id={$thisCalendar->_id}" seoTemplate="calendar_submit"}' data-ipsTooltip title='{lang="add_event"}'>{lang="event_create_normal"}</a>
{{elseif \IPS\calendar\Calendar::canOnAny('add')}}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit" seoTemplate="calendar_submit"}" data-ipsdialog="" data-ipsdialog-size="narrow" data-ipsdialog-title="{lang="select_calendar"}">{lang="event_create_normal"}</a>
{{endif}}
</li>
</ul>
{{else}}
{{if !\IPS\Settings::i()->club_nodes_in_apps and $theOnlyNode = \IPS\calendar\Calendar::theOnlyNode() }}
<a class="ipsButton ipsButton_medium ipsButton_important" href="{url="app=calendar&module=calendar&controller=submit&do=submit&id={$theOnlyNode->_id}" seoTemplate="calendar_submit"}">{lang="create_event"}</a>
{{elseif ( $thisCalendar AND $thisCalendar->can('add') )}}
<a class="ipsButton ipsButton_medium ipsButton_important" href='{url="app=calendar&module=calendar&controller=submit&do=submit&id={$thisCalendar->_id}" seoTemplate="calendar_submit"}' data-ipsTooltip title='{lang="add_event"}'>{lang="create_event"}</a>
{{elseif \IPS\calendar\Calendar::canOnAny('add')}}
<a class="ipsButton ipsButton_medium ipsButton_important" href="{url="app=calendar&module=calendar&controller=submit" seoTemplate="calendar_submit"}" data-ipsdialog="" data-ipsdialog-size="narrow" data-ipsdialog-title="{lang="select_calendar"}">{lang="create_event"}</a>
{{endif}}
{{endif}}
</li>
{{if request.view=='overview'}}
<li>
<a href='#elCalendarSettings_menu' id='elCalendarSettings' data-ipsMenu data-ipsMenu-alignCenter class='ipsButton ipsButton_veryLight ipsButton_medium'>{lang="subscribe_button"} <i class='fa fa-caret-down'></i></a>
</li>
{{endif}}
<li>
<ul class="ipsButton_split">
{{if !$thisCalendar or !(\IPS\IPS::classUsesTrait( $thisCalendar, 'IPS\Content\ClubContainer' ) AND $thisCalendar->club() )}}
<li>
<a href="{url="app=calendar&module=calendar&controller=view&view=overview" seoTemplate="calendar"}" class="ipsButton{{if request.view=='overview'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_overview"}" rel="nofollow">
<i class="fa fa-align-justify"></i>
</a>
</li>
<li class="ipsMenu_item" data-menuItem="event">
{{if !\IPS\Settings::i()->club_nodes_in_apps and $theOnlyNode = \IPS\calendar\Calendar::theOnlyNode() }}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit&do=submit&id={$theOnlyNode->_id}" seoTemplate="calendar_submit"}">{lang="event_create_normal"}</a>
{{elseif ( $thisCalendar AND $thisCalendar->can('add') )}}
<a class="ipsMenu_link" href='{url="app=calendar&module=calendar&controller=submit&do=submit&id={$thisCalendar->_id}" seoTemplate="calendar_submit"}' data-ipsTooltip title='{lang="add_event"}'>{lang="event_create_normal"}</a>
{{elseif \IPS\calendar\Calendar::canOnAny('add')}}
<a class="ipsMenu_link" href="{url="app=calendar&module=calendar&controller=submit" seoTemplate="calendar_submit"}" data-ipsdialog="" data-ipsdialog-size="narrow" data-ipsdialog-title="{lang="select_calendar"}">{lang="event_create_normal"}</a>
{{endif}}
{{endif}}
<li>
<a href="{{if $thisCalendar}}{url="app=calendar&module=calendar&controller=view&view=month&y={$date->year}&m={$date->mon}&id={$thisCalendar->_id}" seoTemplate="calendar_month"}{{else}}{url="app=calendar&module=calendar&controller=view&view=month&y={$date->year}&m={$date->mon}" seoTemplate="calendar_month"}{{endif}}" class="ipsButton{{if request.view=='month'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_monthly"}" rel="nofollow">
<i class="fa fa-calendar"></i>
</a>
</li>
<li>
<a href="{{if $thisCalendar}}{url="app=calendar&module=calendar&controller=view&view=week&w={$date->year}-{$date->mon}-{$date->mday}&id={$thisCalendar->_id}" seoTemplate="calendar_week"}{{else}}{url="app=calendar&module=calendar&controller=view&view=week&w={$date->year}-{$date->mon}-{$date->mday}" seoTemplate="calendar_week"}{{endif}}" class="ipsButton{{if request.view=='week'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_weekly"}" rel="nofollow">
<i class="fa fa-calendar-minus-o"></i>
</a>
</li>
<li>
<a href="{{if $thisCalendar}}{url="app=calendar&module=calendar&controller=view&view=day&y={$date->year}&m={$date->mon}&d={$date->mday}&id={$thisCalendar->_id}" seoTemplate="calendar_day"}{{else}}{url="app=calendar&module=calendar&controller=view&view=day&y={$date->year}&m={$date->mon}&d={$date->mday}" seoTemplate="calendar_day"}{{endif}}" class="ipsButton{{if request.view=='day'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_daily"}" rel="nofollow">
<i class="fa fa-calendar-o"></i>
</a>
</li>
</ul>
{{else}}
{{if !\IPS\Settings::i()->club_nodes_in_apps and $theOnlyNode = \IPS\calendar\Calendar::theOnlyNode() }}
<a class="ipsButton ipsButton_medium ipsButton_important" href="{url="app=calendar&module=calendar&controller=submit&do=submit&id={$theOnlyNode->_id}" seoTemplate="calendar_submit"}">{lang="create_event"}</a>
{{elseif ( $thisCalendar AND $thisCalendar->can('add') )}}
<a class="ipsButton ipsButton_medium ipsButton_important" href='{url="app=calendar&module=calendar&controller=submit&do=submit&id={$thisCalendar->_id}" seoTemplate="calendar_submit"}' data-ipsTooltip title='{lang="add_event"}'>{lang="create_event"}</a>
{{elseif \IPS\calendar\Calendar::canOnAny('add')}}
<a class="ipsButton ipsButton_medium ipsButton_important" href="{url="app=calendar&module=calendar&controller=submit" seoTemplate="calendar_submit"}" data-ipsdialog="" data-ipsdialog-size="narrow" data-ipsdialog-title="{lang="select_calendar"}">{lang="create_event"}</a>
{{endif}}
{{endif}}
</li>
<li>
<ul class="ipsButton_split">
<li>
<a href="{url="app=calendar&module=calendar&controller=view&view=overview" seoTemplate="calendar"}" class="ipsButton{{if request.view=='overview'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_overview"}" rel="nofollow">
<i class="fa fa-align-justify"></i>
</a>
</li>
<li>
<a href="{url="app=calendar&module=calendar&controller=view&view=month&y={$date->year}&m={$date->mon}" seoTemplate="calendar_month"}" class="ipsButton{{if request.view=='month'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_monthly"}" rel="nofollow">
<i class="fa fa-calendar"></i>
</a>
</li>
<li>
<a href="{url="app=calendar&module=calendar&controller=view&view=week&w={$date->year}-{$date->mon}-{$date->mday}" seoTemplate="calendar_week"}" class="ipsButton{{if request.view=='week'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_weekly"}" rel="nofollow">
<i class="fa fa-calendar-minus-o"></i>
</a>
</li>
<li>
<a href="{url="app=calendar&module=calendar&controller=view&view=day&y={$date->year}&m={$date->mon}&d={$date->mday}" seoTemplate="calendar_day"}" class="ipsButton{{if request.view=='day'}} ipsButton_primary{{else}} ipsButton_veryLight{{endif}} ipsButton_narrow ipsButton_medium" data-ipstooltip="" data-ipstooltip-safe="" title="{lang="event_view_daily"}" rel="nofollow">
<i class="fa fa-calendar-o"></i>
</a>
</li>
</ul>
</li>
</ul>
</div>]]></template>
</li>
</ul>
</div>
</div>
{template="subscribeMenu" app="calendar" group="global" params="$thisCalendar, $downloadLinks"}]]></template>
<template template_group="overview" template_name="search" template_data="$searchForm, $results=array(), $mapMarkers=NULL" template_location="front" template_app="calendar"><![CDATA[
<div class='eventsPage'>
{$searchForm->customTemplate( array( \IPS\Theme::i()->getTemplate( 'overview', 'calendar' ), 'searchBar' ) )|raw}
@@ -1493,9 +1497,9 @@
</li>
</ul>
</form>]]></template>
<template template_group="overview" template_name="wrapper" template_data="$featured, $nearme, $stream, $searchForm, $mapMarkers, $online, $date" template_location="front" template_app="calendar"><![CDATA[
<template template_group="overview" template_name="wrapper" template_data="$featured, $nearme, $stream, $searchForm, $mapMarkers, $online, $date, $downloadLinks" template_location="front" template_app="calendar"><![CDATA[
<div data-role='eventsPage' class='eventsPage'>
{template="header" group="overview" app="calendar" params="$date"}
{template="header" group="overview" app="calendar" params="$date, NULL, $downloadLinks"}
<div class='cEvents__overview-header'>
{{if \count( $featured )}}
@@ -2645,6 +2649,10 @@
{{if $event->canRemind()}}
{template="reminder" app="calendar" group="view" params="$event, $reminder"}
{{endif}}
{{if \IPS\Application::appIsEnabled('cloud')}}
{template="spam" app="cloud" group="spam" params="$event"}
{{endif}}
{template="analyticsItemLink" app="core" group="system" params="$event"}
{template="promote" app="core" group="global" params="$event"}
{template="follow" app="core" group="global" params="'calendar', 'event', $event->id, $event->followersCount()"}
</div>
@@ -2722,10 +2730,10 @@
{{if $event->canOnMessage( 'add' )}}
<li class='ipsMenu_item'><a href='{$event->url()->setQueryString( array( 'do' => 'messageForm' ) )}' data-ipsDialog data-ipsDialog-title='{lang="add_message"}'>{lang="add_message"}</a></li>
{{endif}}
{{if \IPS\Member::loggedIn()->modPermission('can_view_moderation_log')}}
<li class='ipsMenu_sep'><hr></li>
<li class="ipsMenu_item"><a href='{$event->url()->setQueryString( array( 'do' => 'modLog' ) )}' data-ipsDialog data-ipsDialog-title='{lang="moderation_history"}'>{lang="moderation_history"}</a></li>
{{endif}}
{{if \IPS\Member::loggedIn()->modPermission('can_view_moderation_log')}}
<li class='ipsMenu_sep'><hr></li>
<li class="ipsMenu_item"><a data-ipsDialog data-ipsDialogTitle="{lang="moderation_log"}" href='{$event->url()->setQueryString( array( 'do' => 'modLog' ) )}'>{lang="moderation_log"}</a></li>
{{endif}}
{{endif}}
</ul>
</li>
@@ -2739,7 +2747,7 @@
{{if $event->venue() and $event->venue()->can( 'view' )}}
<li><a href="{$event->venue()->url()}" class='ipsButton ipsButton_link ipsButton_verySmall ipsButton_fullWidth'>{lang="calendar_more_events_at_x" sprintf="$event->venue()->_title"}</a></li>
{{endif}}
{{if $event->author()->member_id == \IPS\Member::loggedIn()->member_id and \IPS\calendar\Calendar::canOnAny('add')}}
{{if $event->canCopyEvent()}}
<li><a href='{url="app=calendar&module=calendar&controller=submit&do=copy&event_id={$event->id}"}' rel="noindex nofollow" title='' class='ipsButton ipsButton_link ipsButton_verySmall ipsButton_fullWidth'>{lang="add_similar_event"}</a></li>
{{endif}}
</ul>
@@ -2765,6 +2773,10 @@
{{if $event->canRemind()}}
{template="reminder" app="calendar" group="view" params="$event, $reminder, 'ipsButton_fullWidth'"}
{{endif}}
{{if \IPS\Application::appIsEnabled('cloud')}}
{template="spam" app="cloud" group="spam" params="$event"}
{{endif}}
{template="analyticsItemLink" app="core" group="system" params="$event"}
{template="follow" app="core" group="global" params="'calendar', 'event', $event->id, $event->followersCount()"}
{template="promote" app="core" group="global" params="$event"}
</div>
@@ -4266,10 +4278,6 @@ html[dir=&quot;rtl&quot;] .cCalendarEmbed_dates dt {
overflow: hidden;
}
.cCalendarDate {
background: rgb( var(--theme-area_background_reset) );
}
.cCalendarDate > span {
display: block;
text-align: center;
+31 -1
View File
@@ -521,5 +521,35 @@
"107640": "4.7.8 Beta 1",
"107641": "4.7.8 Beta 2",
"107642": "4.7.8 Beta 3",
"107643": "4.7.8"
"107643": "4.7.8",
"107644": "4.7.8",
"107645": "4.7.8",
"107660": "4.7.9 Beta 1",
"107661": "4.7.9 Beta 2",
"107662": "4.7.9 Beta 3",
"107663": "4.7.9",
"107664": "4.7.9",
"107665": "4.7.9",
"107666": "4.7.9",
"107667": "4.7.9",
"107668": "4.7.9",
"107680": "4.7.10 Beta 1",
"107681": "4.7.10 Beta 2",
"107682": "4.7.10",
"107683": "4.7.10",
"107684": "4.7.10",
"107690": "4.7.11 Beta 1",
"107691": "4.7.11 Beta 2",
"107692": "4.7.11",
"107693": "4.7.11",
"107694": "4.7.11",
"107695": "4.7.11.1",
"107700": "4.7.12 Beta 1",
"107701": "4.7.12 Beta 2",
"107702": "4.7.12 Beta 3",
"107703": "4.7.12 Beta 4",
"107704": "4.7.12",
"107710": "4.7.13 Beta 1",
"107711": "4.7.13 Beta 2",
"107712": "4.7.13"
}