Version 5.0.0 beta 5
This commit is contained in:
1 parent
2f24f9de48
commit
57d9db6ce2
218 files changed
+5331
-7416
No files matched your search
@@ -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="5000030" javascript_position="1000250"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.main.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000250"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -110,7 +110,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="5000030" javascript_position="1000250"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000250"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -229,7 +229,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="5000030" javascript_position="1000300"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.eventList.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000300"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -347,7 +347,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="5000030" javascript_position="1000300"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.nearMe.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000300"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -711,7 +711,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="5000030" javascript_position="1000300"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.search.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000300"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -1265,7 +1265,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="5000030" javascript_position="1000100"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000100"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -1813,7 +1813,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="5000030" 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="5000031" javascript_position="1000200"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -1920,7 +1920,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="5000030" javascript_position="1000150"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000150"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -2003,7 +2003,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="5000030" javascript_position="1000150">/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="5000031" javascript_position="1000150">/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -2113,7 +2113,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="5000030" javascript_position="1000050"><![CDATA[/**
|
||||
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="5000031" javascript_position="1000050"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*/
|
||||
@@ -2122,7 +2122,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="5000030" javascript_position="1000050"><![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="5000031" javascript_position="1000050"><![CDATA[ips.templates.set("eventLoading", `
|
||||
<li class='ipsData__item ipsData__item--loading'>
|
||||
<div class="ipsData__image"></div>
|
||||
<div class="ipsData__content">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<language>
|
||||
<app key="calendar" version="5000030">
|
||||
<app key="calendar" version="5000031">
|
||||
<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>
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
<i></i>
|
||||
{{endif}}
|
||||
<div class='ipsCalendarDate'>
|
||||
{{if $event->nextOccurrence( \IPS\calendar\Date::getDate(), 'startDate' )}}
|
||||
{{if $event->nextOccurrence( $date, 'startDate' )}}
|
||||
<span class='ipsCalendarDate__month'>{lang="_date_month_short" pluralize="$event->nextOccurrence( $date, 'startDate' )->format( 'n' )"}</span>
|
||||
<span class='ipsCalendarDate__date'>{$event->nextOccurrence( $date, 'startDate' )->format( 'd' )}</span>
|
||||
{{else}}
|
||||
@@ -459,7 +459,7 @@
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</div>
|
||||
<h4 class='ipsData__title'><a href='{$event->url()}'>{$event->title}</a></h4>
|
||||
<h3 class='ipsData__title'><a href='{$event->url()}'>{$event->title}</a></h3>
|
||||
<p class="ipsData__desc">{$event->truncated(TRUE, 400)}</p>
|
||||
</div>
|
||||
{{if $event->container()->club() !== NULL || $event->venue || $event->location}}
|
||||
@@ -489,7 +489,7 @@
|
||||
{{if \count( $featured )}}
|
||||
<section class="ipsBox cEvents__overview-featured">
|
||||
<header class="ipsBox__header">
|
||||
<h3>Featured Events</h3>
|
||||
<h2>Featured Events</h2>
|
||||
{template="carouselNavigation" group="global" app="core" params="'carousel--events-featured'"}
|
||||
</header>
|
||||
<i-data>
|
||||
@@ -510,7 +510,7 @@
|
||||
{{$image = \IPS\File::get('core_Clubs', $event->container()->club()->profile_photo );}}
|
||||
{{endif}}
|
||||
|
||||
<div class='ipsData__item'>
|
||||
<li class='ipsData__item'>
|
||||
<a href="{$event->url()}" class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>{$event->title}</span></a>
|
||||
<figure class="ipsData__image">
|
||||
{{if $image}}
|
||||
@@ -533,9 +533,9 @@
|
||||
{{if $event->_happening}}
|
||||
<div class='ipsBadge'>{$event->_happening}</div>
|
||||
{{endif}}
|
||||
<h4 class='ipsData__title'>
|
||||
<h3 class='ipsData__title'>
|
||||
<a href="{$event->url()}">{$event->title}</a>
|
||||
</h4>
|
||||
</h3>
|
||||
<p class='i-font-weight_500 i-font-size_-2 i-text-transform_uppercase'>
|
||||
<time datetime='{expression="$event->_start_date->format( 'Y-m-d' )"}'>
|
||||
{{if $event->nextOccurrence( \IPS\calendar\Date::getDate(), 'startDate' )}}
|
||||
@@ -614,7 +614,7 @@
|
||||
</ul>
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>]]></template>
|
||||
</li>]]></template>
|
||||
<template template_group="events" template_name="nearMe" template_data="$nearme, $mapMarkers" template_location="front" template_app="calendar"><![CDATA[<section class='ipsBox' data-controller='calendar.front.overview.nearMe' {{if settings.googlemaps AND !settings.mapbox}}data-nearme-use-google data-googlemaps-api-key='{setting="google_maps_api_key"}'{{endif}}>
|
||||
<header class='ipsBox__header'>
|
||||
<h2>{lang="events_happening_near_you"}</h2>
|
||||
@@ -624,7 +624,7 @@
|
||||
</label>
|
||||
</header>
|
||||
<div class='ipsBox__content'>
|
||||
<p class='i-padding_3 i-color_soft'>{lang="showing_events_near_you"} <a href='{url="app=calendar&do=search&form_submitted=1&lat=0&lon=0"}' data-role='nearMeLink' data-action='moreNearMe'>{lang="see_more_events_near_you"} <i class='fa-solid fa-angle-right'></i></a></p>
|
||||
<p class='i-padding_3 i-color_soft'>{lang="showing_events_near_you"} <a href='{url="app=calendar&do=search&form_submitted=1&lat=0&lon=0"}' data-role='nearMeLink' data-action='moreNearMe' class="i-font-weight_500 i-text-decoration_underline">{lang="see_more_events_near_you"} <i class='fa-solid fa-angle-right'></i></a></p>
|
||||
<div class='ipsJS_hide' data-role='locationEvents'>
|
||||
{template="nearMeContent" group="events" app="calendar" params="$nearme, $mapMarkers"}
|
||||
</div>
|
||||
@@ -652,7 +652,7 @@
|
||||
<section class='ipsBox i-margin-bottom_block'>
|
||||
<h2 class='ipsBox__header'>{lang="events_online_events"}</h2>
|
||||
<div class='i-padding_3 i-background_2 i-border-end-start-radius_box i-border-end-end-radius_box'>
|
||||
<ul class='ipsEventList'>
|
||||
<ul class='ipsEventList ipsData ipsData--grid ipsData--events-list'>
|
||||
{{foreach $events as $event}}
|
||||
{template="event" app="calendar" group="events" params="$event, 'small'"}
|
||||
{{endforeach}}
|
||||
@@ -692,7 +692,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class='cEvents__searchMap cEvents__searchMap--loading event' data-role='searchResultsMap' {{if $mapMarkers}}data-markers="{$mapMarkers}"{{endif}}></div>
|
||||
<ul class='ipsEventList {{if !\count( $results )}}ipsHide{{endif}}' data-role='searchResults'>
|
||||
<ul class='ipsEventList ipsData ipsData--grid ipsData--events-list {{if !\count( $results )}}ipsHide{{endif}}' data-role='searchResults'>
|
||||
{template="searchResults" app="calendar" group="events" params="$results"}
|
||||
</ul>
|
||||
<div class='i-padding_2'>
|
||||
@@ -1371,39 +1371,46 @@
|
||||
{{foreach $elements[''] as $key => $input}}
|
||||
{{if $key === 'location'}}
|
||||
<li class='cEvents__search__field cEvents__search__field--location'>
|
||||
<label class='cEvents__search__label'>{lang="events_search_location"}</label>
|
||||
<div class='cEvents__search__searchWrap i-flex i-gap_1'>
|
||||
{{if $byLocation}}
|
||||
{{$input->options['placeholder'] = \IPS\Member::loggedIn()->language()->addToStack( "events_search_your_location" );}}
|
||||
{{$input->options['disabled'] = TRUE;}}
|
||||
{$input->html()|raw}
|
||||
<a href='#' class='ipsEventSearch__searchLocation i-align-self_center i-font-size_-2 i-font-weight_600 i-color_soft i-flex_00 ipsJS_show' hidden data-action='useMyLocation'><i class='fa-solid fa-crosshairs'></i> <span>{lang="events_search_use_location"}</span></a>
|
||||
<a href='#' class='ipsEventSearch__searchLocation i-align-self_center i-font-size_-2 i-font-weight_600 i-color_soft i-flex_00 ipsJS_show' data-action='cancelLocation'><span>{lang="events_search_cancel_location"}</span></a>
|
||||
{{else}}
|
||||
{$input->html()|raw}
|
||||
<a href='#' class='ipsEventSearch__searchLocation i-align-self_center i-font-size_-2 i-font-weight_600 i-color_soft i-flex_00 ipsJS_show' data-action='useMyLocation'><i class='fa-solid fa-crosshairs'></i> <span>{lang="events_search_use_location"}</span></a>
|
||||
<a href='#' class='ipsEventSearch__searchLocation i-align-self_center i-font-size_-2 i-font-weight_600 i-color_soft i-flex_00 ipsJS_show' hidden data-action='cancelLocation'><span>{lang="events_search_cancel_location"}</span></a>
|
||||
{{endif}}
|
||||
<div class="i-flex i-justify-content_space-between">
|
||||
<label class='cEvents__search__label' for="elInput_location">{lang="events_search_location"}</label>
|
||||
<div class='i-flex i-gap_1'>
|
||||
{{if $byLocation}}
|
||||
{{$input->options['placeholder'] = \IPS\Member::loggedIn()->language()->addToStack( "events_search_your_location" );}}
|
||||
{{$input->options['disabled'] = TRUE;}}
|
||||
<button type="button" class='ipsEventSearch__searchLocation' hidden data-action='useMyLocation'><i class='fa-solid fa-crosshairs'></i> <span>{lang="events_search_use_location"}</span></button>
|
||||
<button type="button" class='ipsEventSearch__searchLocation' data-action='cancelLocation'><span>{lang="events_search_cancel_location"}</span></button>
|
||||
{{else}}
|
||||
<button type="button" class='ipsEventSearch__searchLocation' data-action='useMyLocation'><i class='fa-solid fa-crosshairs'></i> <span>{lang="events_search_use_location"}</span></button>
|
||||
<button type="button" class='ipsEventSearch__searchLocation' hidden data-action='cancelLocation'><span>{lang="events_search_cancel_location"}</span></button>
|
||||
{{endif}}
|
||||
</div>
|
||||
</div>
|
||||
{$input->html()|raw}
|
||||
</li>
|
||||
{{elseif $key === 'show'}}
|
||||
<li class='cEvents__search__field cEvents__search__field--show'>
|
||||
<label class='cEvents__search__label'>{lang="events_search_type"}</label>
|
||||
{$input->html()|raw}
|
||||
<label class="cEvents__search__input">
|
||||
<span class='cEvents__search__label'>{lang="events_search_type"}</span>
|
||||
{$input->html()|raw}
|
||||
</label>
|
||||
</li>
|
||||
{{elseif $key === 'date'}}
|
||||
<li class='cEvents__search__field cEvents__search__field--date cEvents__search__field--from'>
|
||||
<label class='cEvents__search__label'>{lang="events_search_from"}</label>
|
||||
{$input->start->html()|raw}
|
||||
<label class="cEvents__search__input">
|
||||
<span class='cEvents__search__label'>{lang="events_search_from"}</span>
|
||||
{$input->start->html()|raw}
|
||||
</label>
|
||||
</li>
|
||||
<li class='cEvents__search__field cEvents__search__field--date cEvents__search__field--to'>
|
||||
<label class='cEvents__search__label'>{lang="events_search_to"}</label>
|
||||
{$input->end->html()|raw}
|
||||
<label class="cEvents__search__input">
|
||||
<span class='cEvents__search__label'>{lang="events_search_to"}</span>
|
||||
{$input->end->html()|raw}
|
||||
</label>
|
||||
</li>
|
||||
{{endif}}
|
||||
{{endforeach}}
|
||||
<li class='cEvents__search__field cEvents__search__field--submit'>
|
||||
<button type='submit' class='ipsButton ipsButton--primary i-width_100p'>{lang="events_search_search"}</button>
|
||||
<button type='submit' class='ipsButton ipsButton--large ipsButton--primary i-width_100p'><i class="fa-solid fa-magnifying-glass"></i><span>{lang="events_search_search"}</span></button>
|
||||
</li>
|
||||
</ul>
|
||||
</form>]]></template>
|
||||
@@ -1857,7 +1864,7 @@
|
||||
{template="shareButton" app="core" group="sharelinks" params="$event"}
|
||||
{{endif}}
|
||||
{{if $event->canRemind()}}
|
||||
{template="reminder" app="calendar" group="view" params="$event, $reminder"}
|
||||
{template="reminder" app="calendar" group="view" params="$event, $event->getReminder()"}
|
||||
{{endif}}
|
||||
{{if \IPS\Application::appIsEnabled('cloud')}}
|
||||
{template="spam" app="cloud" group="spam" params="$event"}
|
||||
@@ -2072,24 +2079,18 @@
|
||||
<div data-ips-hook="rsvpWrapper" class='ipsBox ipsPull'>
|
||||
{template="rsvpControls" group="view" params="$event, $attendees"}
|
||||
<h3 class='ipsTitle ipsTitle--h3 ipsHide'>{lang="event_rsvp_attendees"}</h3>
|
||||
<div class='ipsTabs ipsTabs_small ipsTabs--stretch' id='elAttendees{$tabId}' data-ipsTabBar data-ipsTabBar-contentArea='#elAttendees{$tabId}_content'>
|
||||
<ul data-ips-hook="rsvpTabs" role="tablist">
|
||||
<li>
|
||||
<a href='#ipsTabs_elAttendees{$tabId}_elGoing_panel' id='elGoing' class='ipsTabs__tab ipsTabs__tab--active' role="tab" aria-selected='true'>{{if $event->hasPassed()}}{lang="rsvp_attendees_past"}{{else}}{lang="rsvp_attendees"}{{endif}} {{if \count($attendees[1])}}({expression="\count($attendees[1])"}){{endif}}</a>
|
||||
</li>
|
||||
<i-tabs class='ipsTabs ipsTabs--small ipsTabs--stretch' id='ipsTabs_elAttendees{$tabId}' data-ipsTabBar data-ipsTabBar-contentArea='#ipsTabs_elAttendees{$tabId}_content'>
|
||||
<div data-ips-hook="rsvpTabs" role="tablist">
|
||||
<button type="button" id='ipsTabs_elAttendees{$tabId}_elGoing' class='ipsTabs__tab' role="tab" aria-controls="ipsTabs_elAttendees{$tabId}_elGoing_panel" aria-selected='true'>{{if $event->hasPassed()}}{lang="rsvp_attendees_past"}{{else}}{lang="rsvp_attendees"}{{endif}} {{if \count($attendees[1])}}({expression="\count($attendees[1])"}){{endif}}</button>
|
||||
{{if $event->rsvp_limit == -1}}
|
||||
<li>
|
||||
<a href='#ipsTabs_elAttendees{$tabId}_elMaybe_panel' id='elMaybe' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="rsvp_maybe_attendees"} {{if \count($attendees[2])}}({expression="\count($attendees[2])"}){{endif}}</a>
|
||||
</li>
|
||||
{{endif}}
|
||||
<li>
|
||||
<a href='#ipsTabs_elAttendees{$tabId}_elNotGoing_panel' id='elNotGoing' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="rsvp_notgoing_attendees"} {{if \count($attendees[0])}}({expression="\count($attendees[0])"}){{endif}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
<button type="button" id='ipsTabs_elAttendees{$tabId}_elMaybe' class='ipsTabs__tab' role="tab" aria-controls="ipsTabs_elAttendees{$tabId}_elMaybe_panel" aria-selected='false'>{lang="rsvp_maybe_attendees"} {{if \count($attendees[2])}}({expression="\count($attendees[2])"}){{endif}}</button>
|
||||
{{endif}}
|
||||
<button type="button" id='ipsTabs_elAttendees{$tabId}_elNotGoing' class='ipsTabs__tab' role="tab" aria-controls="ipsTabs_elAttendees{$tabId}_elNotGoing_panel" aria-selected='false'>{lang="rsvp_notgoing_attendees"} {{if \count($attendees[0])}}({expression="\count($attendees[0])"}){{endif}}</button>
|
||||
</div>
|
||||
{template="tabScrollers" app="core" group="global" location="global"}
|
||||
</div>
|
||||
<div id='elAttendees{$tabId}_content' class='ipsTabs__panels ipsTabs__panels--padded'>
|
||||
<div data-ips-hook="rsvpAttendees" id="ipsTabs_elAttendees{$tabId}_elGoing_panel" class='ipsTabs__panel'>
|
||||
</i-tabs>
|
||||
<div id='ipsTabs_elAttendees{$tabId}_content' class='ipsTabs__panels ipsTabs__panels--padded'>
|
||||
<div data-ips-hook="rsvpAttendees" id="ipsTabs_elAttendees{$tabId}_elGoing_panel" class='ipsTabs__panel' role="tabpanel" aria-labelledby="ipsTabs_elAttendees{$tabId}_elGoing">
|
||||
{{if \count($attendees[1]) }}
|
||||
<ul class='ipsGrid ipsGrid--event-attendees i-basis_40'>
|
||||
{{foreach $attendees[1] as $attendee}}
|
||||
@@ -2115,7 +2116,7 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
{{if $event->rsvp_limit == -1}}
|
||||
<div data-ips-hook="rsvpMaybeWrapper" id="ipsTabs_elAttendees{$tabId}_elMaybe_panel" class='ipsTabs__panel'>
|
||||
<div data-ips-hook="rsvpMaybeWrapper" id="ipsTabs_elAttendees{$tabId}_elMaybe_panel" class='ipsTabs__panel' role="tabpanel" aria-labelledby="ipsTabs_elAttendees{$tabId}_elMaybe" hidden>
|
||||
{{if \count($attendees[2]) }}
|
||||
<ul data-ips-hook="rsvpMaybe" class='ipsGrid ipsGrid--event-attendees i-basis_40'>
|
||||
{{foreach $attendees[2] as $attendee}}
|
||||
@@ -2141,7 +2142,7 @@
|
||||
{{endif}}
|
||||
</div>
|
||||
{{endif}}
|
||||
<div data-ips-hook="rsvpNotGoingWrapper" id="ipsTabs_elAttendees{$tabId}_elNotGoing_panel" class='ipsTabs__panel'>
|
||||
<div data-ips-hook="rsvpNotGoingWrapper" id="ipsTabs_elAttendees{$tabId}_elNotGoing_panel" class='ipsTabs__panel' role="tabpanel" aria-labelledby="ipsTabs_elAttendees{$tabId}_elNotGoing" hidden>
|
||||
{{if \count($attendees[0]) }}
|
||||
<ul data-ips-hook="rsvpNotGoing" class='ipsGrid ipsGrid--event-attendees i-basis_40'>
|
||||
{{foreach $attendees[0] as $attendee}}
|
||||
@@ -2984,7 +2985,6 @@ tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:
|
||||
.ipsData--events-featured .ipsCalendarDate{
|
||||
width: 3.3em;
|
||||
position: absolute;
|
||||
top: 6em;
|
||||
inset-inline-start: 1.5em;
|
||||
}
|
||||
|
||||
@@ -2998,29 +2998,37 @@ tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:
|
||||
.cEvents__search {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-end;
|
||||
gap: 1em;
|
||||
gap: 1.8em 1em;
|
||||
}
|
||||
|
||||
.cEvents__search > *{
|
||||
flex: 1 1 100%;
|
||||
}
|
||||
|
||||
.ipsEventSearch__searchLocation{
|
||||
flex: 0 0 auto;
|
||||
font-weight: 600;
|
||||
font-size: .9em;
|
||||
align-self: start;
|
||||
}
|
||||
|
||||
.ipsEventSearch__searchLocation:hover{
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.cEvents__search__field--date {
|
||||
flex-basis: 280px;
|
||||
flex-basis: 150px;
|
||||
}
|
||||
|
||||
.cEvents__search__field--date input{
|
||||
max-width: none;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.cEvents__search__label {
|
||||
color: var(--i-color_hard);
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
display: block;
|
||||
font-weight: 500;
|
||||
margin-bottom: 0.4em;
|
||||
font-weight: 600;
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
|
||||
.cEvents__search__searchWrap :is([type="text"], [type="search"]) {
|
||||
@@ -3050,29 +3058,22 @@ tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:
|
||||
}
|
||||
|
||||
/* Listing */
|
||||
.ipsData--events-list .ipsCalendarDate{
|
||||
position: absolute;
|
||||
width: 50px;
|
||||
top: 10px;
|
||||
inset-inline-start: 10px;
|
||||
.cEvent__onlineLogo{
|
||||
inset: auto;
|
||||
bottom: 5px;
|
||||
inset-inline-end: 5px;
|
||||
background: var(--i-background_1);
|
||||
padding: 8px 12px;
|
||||
pointer-events: none;
|
||||
border-start-start-radius: var(--i-box--bo-ra);
|
||||
}
|
||||
|
||||
.cEvent__onlineLogo{
|
||||
inset: auto;
|
||||
bottom: 5px;
|
||||
inset-inline-end: 5px;
|
||||
background: var(--i-background_1);
|
||||
padding: 8px 12px;
|
||||
pointer-events: none;
|
||||
border-start-start-radius: var(--i-box--bo-ra);
|
||||
.cEvent__onlineLogo svg{
|
||||
display: block;
|
||||
width: auto;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.cEvent__onlineLogo svg{
|
||||
display: block;
|
||||
width: auto;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
/* Near me section */
|
||||
.ipsEventsNearMe__map{
|
||||
padding: 10px;
|
||||
@@ -3139,8 +3140,7 @@ tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:
|
||||
}
|
||||
|
||||
.cEvents__monthNav__year {
|
||||
font-size: .85em;
|
||||
opacity: .5;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
.cEvents__skeleton--map {
|
||||
|
||||
@@ -279,5 +279,6 @@
|
||||
"5000027": "5.0.0 Beta 2",
|
||||
"5000028": "5.0.0 Beta 2",
|
||||
"5000029": "5.0.0 Beta 3",
|
||||
"5000030": "5.0.0 Beta 4"
|
||||
"5000030": "5.0.0 Beta 4",
|
||||
"5000031": "5.0.0 Beta 5"
|
||||
}
|
||||
@@ -155,14 +155,6 @@ class event extends Controller
|
||||
/* Online User Location */
|
||||
Session::i()->setLocation( $this->event->url(), $this->event->onlineListPermissions(), 'loc_calendar_viewing_event', array( $this->event->title => FALSE ) );
|
||||
|
||||
/* Reminder */
|
||||
$reminder = NULL;
|
||||
try
|
||||
{
|
||||
$reminder = Db::i()->select( '*', 'calendar_event_reminders', array( 'reminder_event_id=? and reminder_member_id=?', $this->event->id, (int) Member::loggedIn()->member_id ) )->first();
|
||||
}
|
||||
catch ( UnderflowException $e ) {}
|
||||
|
||||
/* Address */
|
||||
$address = NULL;
|
||||
$location = NULL;
|
||||
@@ -186,13 +178,28 @@ class event extends Controller
|
||||
'@type' => "Event",
|
||||
'url' => (string) $this->event->url(),
|
||||
'name' => $this->event->mapped('title'),
|
||||
'description' => $this->event->truncated( TRUE, NULL ),
|
||||
'description' => $this->event->truncated( TRUE, NULL ) ?? "",
|
||||
'eventStatus' => "EventScheduled",
|
||||
'organizer' => array(
|
||||
'@type' => 'Person',
|
||||
'name' => $this->event->author()->name,
|
||||
'image' => $this->event->author()->get_photo( TRUE, TRUE )
|
||||
),
|
||||
'startDate' => $this->event->nextOccurrence( Date::getDate(), 'startDate' ) ?
|
||||
$this->event->nextOccurrence( Date::getDate(), 'startDate' )->format( $format ) :
|
||||
$this->event->lastOccurrence( 'startDate' )->format( $format )
|
||||
);
|
||||
|
||||
if( $this->event->author()->member_id )
|
||||
{
|
||||
Output::i()->jsonLd['event']['organizer']['url'] = (string) $this->event->author()->url();
|
||||
}
|
||||
|
||||
if( $image = $this->event->coverPhotoFile() )
|
||||
{
|
||||
Output::i()->jsonLd['event']['image'] = (string) $image->url;
|
||||
}
|
||||
|
||||
if( $this->event->_end_date )
|
||||
{
|
||||
Output::i()->jsonLd['event']['endDate'] = $this->event->nextOccurrence( $this->event->nextOccurrence( Date::getDate(), 'startDate' ) ?: Date::getDate(), 'endDate' ) ?
|
||||
@@ -210,13 +217,10 @@ class event extends Controller
|
||||
);
|
||||
}
|
||||
|
||||
if( $this->event->coverPhoto()->file )
|
||||
{
|
||||
Output::i()->jsonLd['event']['image'] = (string) $this->event->coverPhoto()->file->url;
|
||||
}
|
||||
|
||||
if( $this->event->rsvp )
|
||||
{
|
||||
Output::i()->jsonLd['event']['eventAttendanceMode'] = 'https://schema.org/MixedEventAttendanceMode';
|
||||
|
||||
if( count( $attendees[1] ) )
|
||||
{
|
||||
Output::i()->jsonLd['event']['attendee'] = array();
|
||||
@@ -249,6 +253,8 @@ class event extends Controller
|
||||
{
|
||||
Output::i()->jsonLd['event']['location']['name'] = $addressName;
|
||||
}
|
||||
|
||||
Output::i()->jsonLd['event']['eventAttendanceMode'] = 'https://schema.org/OfflineEventAttendanceMode';
|
||||
}
|
||||
/* If not, default to events URL */
|
||||
else
|
||||
@@ -268,10 +274,12 @@ class event extends Controller
|
||||
'@type' => 'VirtualLocation',
|
||||
'url' => $this->event->url
|
||||
);
|
||||
|
||||
Output::i()->jsonLd['event']['eventAttendanceMode'] = 'https://schema.org/OnlineEventAttendanceMode';
|
||||
}
|
||||
|
||||
/* Display */
|
||||
Output::i()->output = Theme::i()->getTemplate( 'view' )->view( $this->event, $commentsAndReviews, $attendees, $address, $reminder );
|
||||
Output::i()->output = Theme::i()->getTemplate( 'view' )->view( $this->event, $commentsAndReviews, $attendees, $address, $this->event->getReminder() );
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -484,12 +492,7 @@ class event extends Controller
|
||||
}
|
||||
|
||||
/* Existing reminder? */
|
||||
$existing = NULL;
|
||||
try
|
||||
{
|
||||
$existing = Db::i()->select( '*', 'calendar_event_reminders', array( 'reminder_event_id=? and reminder_member_id=?', $this->event->id, (int) Member::loggedIn()->member_id ) )->first();
|
||||
}
|
||||
catch ( UnderflowException $e ) {}
|
||||
$existing = $this->event->getReminder();
|
||||
|
||||
/* Build the form */
|
||||
|
||||
@@ -520,9 +523,14 @@ class event extends Controller
|
||||
|
||||
Db::i()->update( 'core_tasks', array( 'enabled' => 1 ), array( '`key`=?', 'eventreminders' ) );
|
||||
|
||||
$message = 'event_reminder_added';
|
||||
|
||||
Output::i()->redirect( $this->event->url(), $message );
|
||||
if( Request::i()->isAjax() )
|
||||
{
|
||||
Output::i()->sendOutput( Theme::i()->getTemplate( 'view', 'calendar', 'front' )->reminderButton( $this->event, $this->event->getReminder() ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
Output::i()->redirect( $this->event->url(), 'event_reminder_added' );
|
||||
}
|
||||
}
|
||||
|
||||
/* Display */
|
||||
@@ -573,16 +581,6 @@ class event extends Controller
|
||||
*/
|
||||
protected function reminderButton() : void
|
||||
{
|
||||
/* Existing reminder? */
|
||||
$existing = NULL;
|
||||
try
|
||||
{
|
||||
$existing = Db::i()->select( '*', 'calendar_event_reminders', array( 'reminder_event_id=? and reminder_member_id=?', $this->event->id, (int)Member::loggedIn()->member_id ) )->first();
|
||||
}
|
||||
catch ( UnderflowException $e )
|
||||
{
|
||||
}
|
||||
|
||||
Output::i()->sendOutput( Theme::i()->getTemplate( 'view', 'calendar', 'front' )->reminderButton( $this->event, $existing ) );
|
||||
Output::i()->sendOutput( Theme::i()->getTemplate( 'view', 'calendar', 'front' )->reminderButton( $this->event, $this->event->getReminder() ) );
|
||||
}
|
||||
}
|
||||
@@ -602,7 +602,15 @@ class view extends Controller
|
||||
}
|
||||
|
||||
/* Sort */
|
||||
$startDate = Date::getDate();
|
||||
if( !isset( Request::i()->get ) or Request::i()->get == 'byMonth' )
|
||||
{
|
||||
$startDate = Date::getDate( Request::i()->y ?: null, Request::i()->m ?: null, 1, 12 );
|
||||
}
|
||||
else
|
||||
{
|
||||
$startDate = Date::getDate();
|
||||
}
|
||||
|
||||
@usort( $events, function( $a, $b ) use ( $startDate )
|
||||
{
|
||||
if( $a->nextOccurrence( $startDate, 'startDate' ) === NULL )
|
||||
@@ -645,7 +653,7 @@ class view extends Controller
|
||||
{
|
||||
foreach( $events as $idx => $event )
|
||||
{
|
||||
$eventHtml .= Theme::i()->getTemplate( 'events', 'calendar' )->event( $event );
|
||||
$eventHtml .= Theme::i()->getTemplate( 'events', 'calendar' )->event( $event, 'normal', $startDate );
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"id": 5000031,
|
||||
"name": "5.0.0 Beta 5",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": true,
|
||||
"themeeditor": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/events\/event",
|
||||
"front\/events\/featured",
|
||||
"front\/events\/featuredEvent",
|
||||
"front\/events\/nearMe",
|
||||
"front\/events\/online",
|
||||
"front\/events\/searchResultsWrapper",
|
||||
"front\/overview\/searchBar",
|
||||
"front\/view\/coverPhotoOverlay",
|
||||
"front\/view\/eventSidebar"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/calendar.css"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -2553,6 +2553,27 @@ class Event extends Item implements Embeddable,
|
||||
return ( ( $this->_start_date->getTimestamp() - 86400 ) > time() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the existing reminder, if the member has one set
|
||||
*
|
||||
* @param Member|null $member
|
||||
* @return array|null
|
||||
*/
|
||||
public function getReminder( ?Member $member=null ) : ?array
|
||||
{
|
||||
$member = $member ?: Member::loggedIn();
|
||||
if( $member->member_id )
|
||||
{
|
||||
try
|
||||
{
|
||||
return Db::i()->select( '*', 'calendar_event_reminders', array( 'reminder_event_id=? and reminder_member_id=?', $this->id, (int) $member->member_id ) )->first();
|
||||
}
|
||||
catch( UnderflowException ){}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Venue
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user