Version 4.5.0

This commit is contained in:
Neo committed 2025-12-19 05:51:58 -08:00
1 parent 1a0c7fd3c2
commit f79dcf067a
3791 files changed
+248032 -76372

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<build>
<module key="admin/calendars"><![CDATA[{"default_controller":null,"protected":0,"default":1}]]></module>
<module key="admin/venues"><![CDATA[{"default_controller":"","protected":0,"default":0}]]></module>
<module key="front/calendar"><![CDATA[{"default_controller":"view","protected":0,"default":1}]]></module>
<task frequency="P0Y0M0DT4H0M0S">icalendar</task>
<task frequency="P0Y0M0DT1H0M0S">eventreminders</task>
<setting key="all_activity_calendar_streamitems"><![CDATA[{"key":"all_activity_calendar_streamitems","default":"1","report":"full"}]]></setting>
<setting key="calendar_block_past_changes"><![CDATA[{"key":"calendar_block_past_changes","default":"0","report":"full"}]]></setting>
<setting key="calendar_date_format"><![CDATA[{"key":"calendar_date_format","default":"d_lm_y","report":"full"}]]></setting>
<setting key="calendar_date_format_custom"><![CDATA[{"key":"calendar_date_format_custom","default":"","report":"bool"}]]></setting>
<setting key="calendar_default_view"><![CDATA[{"key":"calendar_default_view","default":"month","report":"full"}]]></setting>
<setting key="calendar_rss_feed"><![CDATA[{"key":"calendar_rss_feed","default":"1","report":"full"}]]></setting>
<setting key="calendar_rss_feed_days"><![CDATA[{"key":"calendar_rss_feed_days","default":"30","report":"full"}]]></setting>
<setting key="calendar_rss_feed_order"><![CDATA[{"key":"calendar_rss_feed_order","default":"0","report":"full"}]]></setting>
<setting key="calendar_venues_enabled"><![CDATA[{"key":"calendar_venues_enabled","default":"0","report":"full"}]]></setting>
<setting key="ipb_calendar_mon"><![CDATA[{"key":"ipb_calendar_mon","default":"0","report":"full"}]]></setting>
<setting key="show_bday_calendar"><![CDATA[{"key":"show_bday_calendar","default":"1","report":"full"}]]></setting>
<widget key="todaysBirthdays"><![CDATA[{"class":"\\IPS\\Widget\\StaticCache","restrict":[],"default_area":"","allow_reuse":false,"menu_style":"menu","embeddable":true}]]></widget>
<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":["calendars"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;do=form"><![CDATA[{"lang_key":"menu__calendar_calendars_calendars","restriction":"calendars_manage","keywords":["edit calendar"]}]]></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>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_1_cal_allow_reviews"><![CDATA[{"lang_key":"cal_allow_reviews","restriction":"calendars_manage","keywords":["allow reviews","reviews"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_1_cal_color"><![CDATA[{"lang_key":"cal_color","restriction":"calendars_manage","keywords":["calendar color"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_1_cal_moderate"><![CDATA[{"lang_key":"cal_moderate","restriction":"calendars_manage","keywords":["approve","approve event","event"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_1_cal_title"><![CDATA[{"lang_key":"cal_title","restriction":"calendars_manage","keywords":["calendar name","calendar title"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_new_cal_allow_comments"><![CDATA[{"lang_key":"cal_allow_comments","restriction":"calendars_manage","keywords":["allow comments"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_new_cal_allow_reviews"><![CDATA[{"lang_key":"cal_allow_reviews","restriction":"calendars_manage","keywords":["allow reviews","reviews"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_new_cal_color"><![CDATA[{"lang_key":"cal_color","restriction":"calendars_manage","keywords":["calendar color"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_new_cal_moderate"><![CDATA[{"lang_key":"cal_moderate","restriction":"calendars_manage","keywords":["approve event","event approve","events"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=calendars&amp;searchResult=form_new_cal_title"><![CDATA[{"lang_key":"cal_title","restriction":"calendars_manage","keywords":["calendar title"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=ical"><![CDATA[{"lang_key":"menu__calendar_calendars_ical","restriction":"calendar_feeds_manage","keywords":["calendar export","feeds","iCal","iCalendar"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=ical&amp;do=add&amp;searchResult=form_feed_allow_rsvp"><![CDATA[{"lang_key":"feed_allow_rsvp","restriction":"calendar_feeds_manage","keywords":["enable rsvp","rsvp"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=ical&amp;do=add&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=add&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=ical&amp;do=add&amp;searchResult=form_feed_title"><![CDATA[{"lang_key":"feed_title","restriction":"calendar_feeds_manage","keywords":["add icalendar","feed title","iCalendar feed"]}]]></acpsearch>
<acpsearch key="app=calendar&amp;module=calendars&amp;controller=ical&amp;do=add&amp;searchResult=form_feed_url"><![CDATA[{"lang_key":"feed_url","restriction":"calendar_feeds_manage","keywords":["feed url","icalendar url"]}]]></acpsearch>
<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&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=settings&amp;searchResult=form_show_bday_calendar"><![CDATA[{"lang_key":"show_bday_calendar","restriction":"settings_manage","keywords":["birthdays"]}]]></acpsearch>
</build>
+15 -50
View File
@@ -28,7 +28,7 @@
<table width='100%' cellpadding='5' cellspacing='0' border='0'>
<tr>
<td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 1.5; font-size: 14px; color: #8d8d8d">
{$email->language->addToStack("email_posted_in", FALSE, array( 'sprintf' => array( $content->container()->_title ) ) )}
{$email->language->addToStack("email_posted_in", FALSE, array( 'sprintf' => array( $content->container()->getTitleForLanguage( $email->language ) ) ) )}
</td>
</tr>
<tr>
@@ -49,12 +49,12 @@
</tr>
</table>
<br /><br />
<em style='color: #8c8c8c'>&mdash; {setting="board_name"}</em>]]></template_content_html><template_data>$content, $daysToGo, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("email_event_reminder_plain", FALSE, array( 'sprintf' => array( $email->language->addToStack( "days_to_go", FALSE, array( 'pluralize' => array( $daysToGo ) ) ), $content->mapped('title') ) ) )}
<em style='color: #8c8c8c'>&mdash; {setting="board_name"}</em>]]></template_content_html><template_data>$content, $daysToGo, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("email_event_reminder_plain", FALSE, array( 'htmlsprintf' => array( $email->language->addToStack( "days_to_go", FALSE, array( 'pluralize' => array( $daysToGo ) ) ), $content->mapped('title') ) ) )}
{$email->language->addToStack("email_event_reminder_when", FALSE, array( 'sprintf' => array( $content->fixedDateTimeDescription( $email->language ) ) ) )}
{{if $content->location}}{$email->language->addToStack("email_event_reminder_where", FALSE, array( 'sprintf' => array( \IPS\GeoLocation::buildFromjson( $content->location )->toString() ) ) )}{{endif}}
{$email->language->addToStack("email_event_reminder_when", FALSE, array( 'htmlsprintf' => array( $content->fixedDateTimeDescription( $email->language ) ) ) )}
{{if $content->location}}{$email->language->addToStack("email_event_reminder_where", FALSE, array( 'htmlsprintf' => array( \IPS\GeoLocation::buildFromjson( $content->location )->toString() ) ) )}{{endif}}
{$email->language->addToStack("go_to_this_x", FALSE, array( 'sprintf' => array( mb_strtolower( $email->language->addToStack( $content::$title, FALSE ) ) ) ) )}: {$content->url()}
{$email->language->addToStack("go_to_this_x", FALSE, array( 'htmlsprintf' => array( mb_strtolower( $email->language->addToStack( $content::$title, FALSE ) ) ) ) )}: {$content->url()}
-- {setting="board_name"}]]></template_content_plaintext><template_pinned>0</template_pinned></template><template><template_app>calendar</template_app><template_name>notification_new_content</template_name><template_content_html><![CDATA[
{{if $content->author()->member_id}}
@@ -66,46 +66,11 @@
<br />
<br />
<table width='100%' cellpadding='0' cellspacing='0' border='0'>
<tr>
<td dir='{dir}' width='40' valign='top' class='hidePhone' style='width: 0; max-height: 0; overflow: hidden; float: left;'>
<img src='{$content->author()->get_photo( true, true )}' width='40' height='40' style='border: 1px solid #777777; vertical-align: middle;'>
</td>
<td dir='{dir}' width='30' valign='top' class='hidePhone' style='width: 0; max-height: 0; overflow: hidden; float: left;'>
<br />
<span style='display: block; width: 0px; height: 0px; border-width: 15px; border-color: transparent #f9f9f9 transparent transparent; border-style: solid'></span>
</td>
<td dir='{dir}' valign='top' style='background: #f9f9f9;'>
<table width='100%' cellpadding='10' cellspacing='0' border='0'>
<tr>
<td dir='{dir}'>
<table width='100%' cellpadding='5' cellspacing='0' border='0'>
<tr>
<td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 1.5; font-size: 14px; color: #8d8d8d">
{$email->language->addToStack("email_posted_in", FALSE, array( 'sprintf' => array( $content->container()->_title ) ) )}
</td>
</tr>
<tr>
<td dir='{dir}' style="font-family: 'Helvetica Neue', helvetica, sans-serif; line-height: 1.5; font-size: 14px;">
{$email->parseTextForEmail( $content->content(), $email->language )|raw}
</td>
</tr>
<tr>
<td dir='{dir}'>
<a href='{$content->url()}' style="color: #ffffff; font-family: 'Helvetica Neue', helvetica, sans-serif; text-decoration: none; font-size: 14px; background: {setting="email_color"}; line-height: 32px; padding: 0 10px; display: inline-block; border-radius: 3px;">{$email->language->addToStack("go_to_this_x", FALSE, array( 'sprintf' => array( mb_strtolower( $email->language->addToStack( $content::$title, FALSE ) ) ) ) )}</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
{$content->emailContent( $email, 'html' )|raw}
<br /><br />
<em style='color: #8c8c8c'>&mdash; {setting="board_name"}</em>]]></template_content_html><template_data>$content, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("email_new_calevent_plain", FALSE, array( 'sprintf' => array( $content->author()->name, $content->indefiniteArticle( $email->language ), $content->mapped( 'title' ), $content->fixedDateTimeDescription( $email->language ) ) ) )}
<em style='color: #8c8c8c'>&mdash; {setting="board_name"}</em>]]></template_content_html><template_data>$content, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("email_new_calevent_plain", FALSE, array( 'htmlsprintf' => array( $content->author()->name, $content->indefiniteArticle( $email->language ), $content->mapped( 'title' ), $content->fixedDateTimeDescription( $email->language ) ) ) )}
{$email->language->addToStack("go_to_this_x", FALSE, array( 'sprintf' => array( mb_strtolower( $email->language->addToStack( $content::$title, FALSE ) ) ) ) )}: {$content->url()}
{$content->emailContent( $email, 'plaintext' )|raw}
-- {setting="board_name"}]]></template_content_plaintext><template_pinned>0</template_pinned></template><template><template_app>calendar</template_app><template_name>digests__item</template_name><template_content_html><![CDATA[<tr style='border-bottom: 1px solid #eeeeee'>
<td dir='{dir}' width='120' valign='top' align='center'>
@@ -130,7 +95,7 @@
</td>
<td dir='{dir}' align='left'>
<p style='font-family: "Helvetica Neue", helvetica, sans-serif; margin: 0; font-size: 13px; font-weight: bold'>
{$email->language->addToStack("x_created_event_in", FALSE, array( 'sprintf' => array( $event->author()->name, $event->container()->_title ) ) )}
{$email->language->addToStack("x_created_event_in", FALSE, array( 'sprintf' => array( $event->author()->name, $event->container()->getTitleForLanguage( $email->language ) ) ) )}
</p>
<h2 style="font-family: 'Helvetica Neue', helvetica, sans-serif; font-size: 18px; font-weight: 500 !important; margin: 0">
<a href='{$event->url()}' style='text-decoration: none;'>{$event->title}</a>
@@ -153,15 +118,15 @@
{{if $event->rsvp}}
<div style="font-size: 13px; font-family: 'Helvetica Neue', helvetica, sans-serif; margin-top: 10px">
{{if $attendees = $event->attendees()}}{{endif}}
<strong style="text-transform: uppercase; font-size: 12px; font-family: 'Helvetica Neue', helvetica, sans-serif;">{$email->language->addToStack("digest_users_going", FALSE, array( 'pluralize' => array( count( $attendees[1] ) ) ) )}</strong>
{{if count( $attendees[1] )}}
<strong style="text-transform: uppercase; font-size: 12px; font-family: 'Helvetica Neue', helvetica, sans-serif;">{$email->language->addToStack("digest_users_going", FALSE, array( 'pluralize' => array( \count( $attendees[1] ) ) ) )}</strong>
{{if \count( $attendees[1] )}}
{{foreach $attendees[1] as $idx => $attendee}}
{{if $idx < 10}}
<img src="{$attendee->get_photo( true, true )}" width="32" height="32" style="border: 1px solid #000; vertical-align: middle;">
{{endif}}
{{endforeach}}
{{if count( $attendees[1] ) > 10}}
&nbsp;&nbsp;&nbsp;<span style="font-size: 13px; font-family: 'Helvetica Neue', helvetica, sans-serif; color: #8c8c8c">{$email->language->addToStack("and_x_more", FALSE, array( 'pluralize' => array( count( $attendees[1] ) - 10 ) ) )}</span>
{{if \count( $attendees[1] ) > 10}}
&nbsp;&nbsp;&nbsp;<span style="font-size: 13px; font-family: 'Helvetica Neue', helvetica, sans-serif; color: #8c8c8c">{$email->language->addToStack("and_x_more", FALSE, array( 'pluralize' => array( \count( $attendees[1] ) - 10 ) ) )}</span>
{{endif}}
{{endif}}
</div>
@@ -180,7 +145,7 @@
</p>
{{endif}}
</td>
</tr>]]></template_content_html><template_data>$event, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("x_created_event_in", FALSE, array( 'sprintf' => array( $event->author()->name, $event->container()->_title ) ) )}: {$event->title} ({$event->url()})
</tr>]]></template_content_html><template_data>$event, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("x_created_event_in", FALSE, array( 'htmlsprintf' => array( $event->author()->name, $event->container()->getTitleForLanguage( $email->language ) ) ) )}: {$event->title} ({$event->url()})
]]></template_content_plaintext><template_pinned>0</template_pinned></template><template><template_app>calendar</template_app><template_name>digests__comment</template_name><template_content_html><![CDATA[<tr style='border-bottom: 1px solid #eeeeee'>
<td dir='{dir}' width='120' valign='top' align='center'>
<table width='120' cellpadding='10' cellspacing='0' border='0' bgcolor='#fafafa'>
@@ -221,5 +186,5 @@
</div>
</td>
</tr>]]></template_content_html><template_data>$comment, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("x_commented_event", FALSE, array( 'sprintf' => array( $comment->author()->name ) ) )}: {$comment->item()->name} ({$comment->url()})
</tr>]]></template_content_html><template_data>$comment, $email</template_data><template_content_plaintext><![CDATA[{$email->language->addToStack("x_commented_event", FALSE, array( 'htmlsprintf' => array( $comment->author()->name ) ) )}: {$comment->item()->name} ({$comment->url()})
]]></template_content_plaintext><template_pinned>0</template_pinned></template></emails>
@@ -0,0 +1,38 @@
{
"core": {
"ContentRouter": {
"calendar": "IPS\\calendar\\extensions\\core\\ContentRouter\\calendar"
},
"StreamItems": {
"StreamItems": "IPS\\calendar\\extensions\\core\\StreamItems\\StreamItems"
},
"LiveSearch": {
"Calendars": "IPS\\calendar\\extensions\\core\\LiveSearch\\Calendars"
},
"FileStorage": {
"Events": "IPS\\calendar\\extensions\\core\\FileStorage\\Events"
},
"Announcements": {
"Calendars": "IPS\\calendar\\extensions\\core\\Announcements\\Calendars"
},
"EditorLocations": {
"Venue": "IPS\\calendar\\extensions\\core\\EditorLocations\\Venue",
"Calendar": "IPS\\calendar\\extensions\\core\\EditorLocations\\Calendar"
},
"Permissions": {
"Permissions": "IPS\\calendar\\extensions\\core\\Permissions\\Permissions"
},
"CreateMenu": {
"Event": "IPS\\calendar\\extensions\\core\\CreateMenu\\Event"
},
"FrontNavigation": {
"Calendar": "IPS\\calendar\\extensions\\core\\FrontNavigation\\Calendar"
},
"MemberSync": {
"Calendar": "IPS\\calendar\\extensions\\core\\MemberSync\\Calendar"
},
"Notifications": {
"Events": "IPS\\calendar\\extensions\\core\\Notifications\\Events"
}
}
}
+144 -14
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="103038" 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="105100" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -105,14 +105,14 @@
*/
_setLoading: function (state) {
if( state ){
this.scope.animate( { opacity: 0.6 }, 'fast' );
this.scope.animate( { opacity: "0.6" }, 'fast' );
} else {
this.scope.animate( { opacity: 1 }, 'fast' );
this.scope.animate( { opacity: "1" }, 'fast' );
}
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="103038" 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="105100" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -254,7 +254,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="103038" 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="105100" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -288,6 +288,7 @@
this.on( 'click', '[data-action="updateRepeat"]', this.finishRepeat );
this._checkAndSetEventEndState();
this.evaluateRecurringOptions();
this.setup();
},
@@ -330,6 +331,8 @@
*/
setHasFocusedEventOnEndChange: function() {
this._hasFocusedEventEnd = true;
this.evaluateRecurringOptions();
},
/**
@@ -349,6 +352,124 @@
}
},
/**
* When an end date is set, adjust the available recurrence options
*
* @returns {void}
*/
evaluateRecurringOptions: function() {
var startDate = $("#event_start_date").val();
var endDate = $("#event_end_date").val();
if (!this._isValidEndDate(endDate) || $('#check_single_day').prop('checked') ) {
// If the summary isn't visible, make sure the checkbox row is
if( !$('#elRepeatRow_shown').is(':visible') )
{
$('#elRepeatRow_hidden').show();
}
$('#elSelect_event_repeats').find('option').prop( 'disabled', false );
if( $('#elRepeatOn_back').length )
{
$('#elRepeatOn_back').attr( 'id', 'elRepeatOn' );
}
if( $('#elSelect_event_repeats').val() == 'weekly' )
{
$('#elRepeatOn').show();
}
this._updateSummary();
return;
}
startDate = new Date( startDate );
endDate = new Date( endDate );
var dayDifference = parseInt( ( endDate.getTime() - startDate.getTime() ) / ( 24 * 3600 * 1000 ) );
var currentlySelected = $('#elSelect_event_repeats').val();
// If the event spans more than one day, remove "daily" as a recurrence option and hide the "day of the week" options for monthly
if( dayDifference > 1 ) {
$('#elSelect_event_repeats').find('option[value="daily"]').prop( 'disabled', true );
$('#elRepeatOn').hide();
$('#elRepeatOn').attr( 'id', 'elRepeatOn_back' );
if( !currentlySelected || currentlySelected == 'daily' )
{
$('#elSelect_event_repeats').find('option[value="daily"]').prop( 'selected', false );
$('#elSelect_event_repeats').find('option[value="weekly"]').prop( 'selected', true );
currentlySelected = 'weekly';
}
} else {
$('#elSelect_event_repeats').find('option[value="daily"]').prop( 'disabled', false );
if( $('#elRepeatOn_back').length )
{
$('#elRepeatOn_back').attr( 'id', 'elRepeatOn' );
}
if( $('#elSelect_event_repeats').val() == 'weekly' )
{
$('#elRepeatOn').show();
}
}
// If the event spans more than one week, remove "daily" and "weekly" as recurrence options
if( dayDifference > 7 ) {
$('#elSelect_event_repeats').find('option[value="weekly"]').prop( 'disabled', true );
if( !currentlySelected || currentlySelected == 'weekly' )
{
$('#elSelect_event_repeats').find('option[value="weekly"]').prop( 'selected', false );
$('#elSelect_event_repeats').find('option[value="monthly"]').prop( 'selected', true );
currentlySelected = 'monthly';
}
} else {
$('#elSelect_event_repeats').find('option[value="weekly"]').prop( 'disabled', false );
}
// If the event spans more than one month, remove "daily", "weekly" and "monthly" recurrence options
if(
// If there's more than one month between the dates, then we block
( endDate.getMonth() - startDate.getMonth() + ( 12 * ( endDate.getFullYear() - startDate.getFullYear() ) ) > 1 )
||
// Else if there is one month between the dates, then we check the end date is greater than the start date
(
endDate.getMonth() - startDate.getMonth() + ( 12 * ( endDate.getFullYear() - startDate.getFullYear() ) ) == 1 && endDate.getDate() > startDate.getDate()
)
) {
$('#elSelect_event_repeats').find('option[value="monthly"]').prop( 'disabled', true );
if( !currentlySelected || currentlySelected == 'monthly' )
{
$('#elSelect_event_repeats').find('option[value="monthly"]').prop( 'selected', false );
$('#elSelect_event_repeats').find('option[value="yearly"]').prop( 'selected', true );
currentlySelected = 'yearly';
}
} else {
$('#elSelect_event_repeats').find('option[value="monthly"]').prop( 'disabled', false );
}
// If the event spans more than one year, remove ability for event to repeat entirely
if( dayDifference > 365 )
{
$('#elSelect_event_repeats').find('option[value="yearly"]').prop( 'selected', false );
this.disableRecurring();
$('#elRepeatRow_hidden').hide();
}
else
{
$('#elRepeatRow_hidden').show();
}
// And update the summary in case anything changed
this._updateSummary();
},
/**
* Finish setting the options
*
@@ -478,7 +599,10 @@
* @returns {void}
*/
disableRecurring: function (e) {
e.preventDefault();
if( e )
{
e.preventDefault();
}
this.scope.find('#elRepeatCb').prop( 'checked', false );
this._updateSummary();
@@ -588,6 +712,9 @@
return "<em class='ipsType_light ipsType_unbold ipsFaded'>" + ips.getString('select_time') + "</em>";
}
var date = new Date('1970-01-01T' + time + 'Z');
var time = date.toLocaleTimeString( $('html').attr('lang'), { hour: '2-digit', minute: '2-digit', timeZone: 'UTC' } );
return time;
},
@@ -624,6 +751,7 @@
var dateObj = ips.utils.time.getDateFromInput( this.scope.find('input[name="event_dates[repeat_end_date]"]') );
if( ips.utils.time.isValidDateObj( dateObj ) && dateObj.getFullYear() > 1900 ){ // > 1900 just so it doesn't start updating on year 19 etc.
ips.utils.time.removeTimezone( dateObj );
endString = ips.getString('until', { date: ips.utils.time.localeDateString( dateObj, { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric' } ) } );
}
}
@@ -699,7 +827,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/venue" javascript_name="ips.venue.main.js" javascript_type="controller" javascript_version="103038" 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="105100" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -804,14 +932,14 @@
*/
_setLoading: function (state) {
if( state ){
this.scope.animate( { opacity: 0.6 }, 'fast' );
this.scope.animate( { opacity: "0.6" }, 'fast' );
} else {
this.scope.animate( { opacity: 1 }, 'fast' );
this.scope.animate( { opacity: "1" }, 'fast' );
}
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="103038" 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="105100" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -869,8 +997,8 @@
.css({
width: dims.outerWidth + 'px',
height: dims.outerHeight + 'px',
top: 0,
left: 0,
top: "0",
left: "0",
position: 'absolute',
zIndex: ips.ui.zIndex()
});
@@ -894,7 +1022,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="103038" 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="105100" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1004,7 +1132,7 @@
});
}(jQuery, _));
</file>
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="103038" 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="105100" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*/
@@ -1023,9 +1151,11 @@ controllers</order>
jquery
mustache
jstz
IntersectionObserver
Debug.js
app.js</order>
<order app="global" path="/dev/js//library//jquery">jquery.js
jquery-migrate.js
jquery.history.js
jquery.transform.js</order>
<order app="global" path="/dev/js//library//linkify">linkify.min.js
+35 -15
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="calendar" version="103038">
<app key="calendar" version="105100">
<word key="__app_calendar" js="0">Calendar</word>
<word key="frontnavigation_calendar" js="0">Calendar</word>
<word key="__indefart_calendar_event_comment" js="0">a comment on a calendar event</word>
@@ -41,6 +41,9 @@
<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>
<word key="loc_calendar_viewing_calendar_action" js="0">%s is viewing a calendar</word>
<word key="loc_calendar_viewing_calendar_all_action" js="0">%s is viewing a calendar</word>
<word key="loc_calendar_viewing_event_action" js="0">%s is viewing an event</word>
<word key="show_bday_calendar" js="0">Show birthdays on calendar</word>
<word key="show_bday_calendar_desc" js="0">When enabled, the calendar will show the number of member birthdays for each day and will list member birthdays when viewing a date.</word>
<word key="ipb_calendar_mon" js="0">Start calendar on Monday</word>
@@ -69,6 +72,8 @@
<word key="calendar_date_format_custom" js="0">Custom date format</word>
<word key="calendar_date_format_custom_desc" js="0"><![CDATA[You can use any <a href='{external.php-strftime}' target='_blank' rel='noopener'>PHP strftime</a> options to specify a custom format for dates in calendar]]></word>
<word key="calendar_no_date_format" js="0">You must either choose a predefined date format or specify a custom date format</word>
<word key="calendar_block_past_changes" js="0">Prevent changes to past events</word>
<word key="calendar_block_past_changes_desc" js="0">If enabled, users will not be able to RSVP for events or edit events that have passed. Moderators will still be able to edit past events.</word>
<word key="calendars" js="0">Calendars</word>
<word key="calendars_sg" js="0">Calendar</word>
<word key="calendar_settings" js="0">Settings</word>
@@ -229,7 +234,7 @@
<word key="event_rpm_ends_occurrencesx" js="0">occurrences</word>
<word key="event_rpm_ends_date" js="0">On</word>
<word key="event_auto_follow" js="0"></word>
<word key="event_auto_follow_suffix" js="0">Notify me when other comments are posted</word>
<word key="event_auto_follow_suffix" js="0">Follow this event</word>
<word key="event_rsvp_limit" js="0">RSVP Limit</word>
<word key="event_rsvp_limit_desc" js="0">Once the limit is reached, no further attendees will be allowed to RSVP for this event.</word>
<word key="event_cover_photo" js="0">Cover Photo</word>
@@ -252,13 +257,15 @@
<word key="events_happening_today" js="0">Events happening today</word>
<word key="day_view_all_day" js="0"><![CDATA[ALL<br>DAY]]></word>
<word key="you_are_going" js="0">You are going</word>
<word key="you_were_going" js="0">You went</word>
<word key="you_arent_going" js="0">You aren't going</word>
<word key="you_werent_going" js="0">You didn't go</word>
<word key="you_are_going_to_this" js="0">You are going to this event</word>
<word key="you_are_not_going_to_this" js="0">You are not going to this event</word>
<word key="rsvp_change" js="0">Change RSVP</word>
<word key="confirm_attendance" js="0">Confirm attendance</word>
<word key="featured_events" js="0">Featured Events</word>
<word key="end_date_before_start" js="0">Please select an end date after the event start date</word>
<word key="end_date_before_start" js="0">The event must end after it starts</word>
<word key="invalid_start_date" js="0">The provided start date is not valid</word>
<word key="invalid_end_date" js="0">The provided end date is not valid</word>
<word key="invalid_recurrence" js="0">The event cannot repeat that frequently. Each occurrence must end before the next starts.</word>
@@ -287,6 +294,9 @@
<word key="rsvp_maybe_event" js="0">Maybe</word>
<word key="rsvp_notgoing_event" js="0">Decline</word>
<word key="rsvp_attendees" js="0">Going</word>
<word key="rsvp_attendees_past" js="0">Went</word>
<word key="rsvp_attended_past_event" js="0">Went</word>
<word key="rsvp_notattended_past_event" js="0">Could not attend</word>
<word key="rsvp_maybe_attendees" js="0">Maybe</word>
<word key="rsvp_notgoing_attendees" js="0">Declined</word>
<word key="event_address" js="0">Event Address</word>
@@ -294,7 +304,11 @@
<word key="no_rsvps_yet" js="0">No one is attending yet.</word>
<word key="no_decline_rsvps_yet" js="0">No one has declined yet.</word>
<word key="no_maybe_rsvps_yet" js="0">No one has said they might go yet.</word>
<word key="no_rsvps_past" js="0">No one went to this event.</word>
<word key="no_maybe_rsvps_past" js="0">No one said they might go.</word>
<word key="no_decline_rsvps_past" js="0">No one declined to attend.</word>
<word key="rsvp_limit_reached" js="0">RSVP limit reached</word>
<word key="no_rsvp_past_event" js="0">The event has already passed</word>
<word key="rsvp_error" js="0">You do not have permission to RSVP for this event</word>
<word key="rsvp_not_going" js="0">Your name has been removed from the guest list for this event</word>
<word key="rsvp_selection_yes" js="0">Your name has been added to the guest list</word>
@@ -302,19 +316,23 @@
<word key="rsvp_selection_maybe" js="0">Your name has been added to the maybe list</word>
<word key="rsvp_download" js="0">Download guest list</word>
<word key="event_rsvp_attendees_other" js="0">Other Responses</word>
<word key="recur_human_yearly" js="0">This event repeats every year %s</word>
<word key="recur_human_yearly_multi" js="0">This event repeats every {# [?:years]} %s</word>
<word key="recur_human_monthly" js="0">This event repeats every month %s</word>
<word key="recur_human_monthly_multi" js="0">This event repeats every {# [?:months]} %s</word>
<word key="recur_human_weekly" js="0">This event repeats every week %s</word>
<word key="recur_human_weekly_multi" js="0">This event repeats every {# [?:weeks]} %s</word>
<word key="recur_human_weekly_days" js="0">This event repeats every week on %s %s</word>
<word key="recur_human_weekly_multi_days" js="0">This event repeats every {# [?:weeks]} on %s %s</word>
<word key="recur_human_daily" js="0">This event repeats every day %s</word>
<word key="recur_human_daily_multi" js="0">This event repeats every {# [?:days]} %s</word>
<word key="recur_human_yearly" js="0">This event {!#[1:began][2:begins]} %s and repeats every year %s</word>
<word key="recur_human_yearly_multi" js="0">This event {!#[1:began][2:begins]} %s and repeats every %s %s</word>
<word key="recur_human_monthly" js="0">This event {!#[1:began][2:begins]} %s and repeats every month %s</word>
<word key="recur_human_monthly_multi" js="0">This event {!#[1:began][2:begins]} %s and repeats every %s %s</word>
<word key="recur_human_weekly" js="0">This event {!#[1:began][2:begins]} %s and repeats every week %s</word>
<word key="recur_human_weekly_multi" js="0">This event {!#[1:began][2:begins]} %s and repeats every %s %s</word>
<word key="recur_human_weekly_days" js="0">This event {!#[1:began][2:begins]} %s and repeats every week on %s %s</word>
<word key="recur_human_weekly_multi_days" js="0">This event {!#[1:began][2:begins]} %s and repeats every %s on %s %s</word>
<word key="recur_human_daily" js="0">This event {!#[1:began][2:begins]} %s and repeats every day %s</word>
<word key="recur_human_daily_multi" js="0">This event {!#[1:began][2:begins]} %s and repeats every %s %s</word>
<word key="recur_human__forever" js="0">forever</word>
<word key="recur_human__occurrences" js="0">for {# [1:occurrence][?:occurrences]}</word>
<word key="recur_human__until" js="0">until %s</word>
<word key="recur_human__xyearly" js="0">{# [1:year][?:years]}</word>
<word key="recur_human__xmonthly" js="0">{# [1:month][?:months]}</word>
<word key="recur_human__xweekly" js="0">{# [1:week][?:weeks]}</word>
<word key="recur_human__xdaily" js="0">{# [1:day][?:days]}</word>
<word key="event_rss_feed_off" js="0">This RSS feed is currently unavailable</word>
<word key="event_rss_feed_off_admin" js="0">The calendar RSS feed is currently disabled in the admin control panel</word>
<word key="event_attendees" js="0">Attendees for %s</word>
@@ -347,6 +365,7 @@
<word key="event_remind_days_before" js="0">days before this event</word>
<word key="event_reminder_removed" js="0">Reminder Removed</word>
<word key="event_reminder_added" js="0">Reminder Saved</word>
<word key="no_edit_past_event" js="0">You do not have permission to edit past events</word>
<word key="block_upcomingEvents" js="0">Upcoming Events</word>
<word key="block_upcomingEvents_desc" js="0">Shows upcoming calendar events</word>
<word key="auto_hide" js="0">Automatically hide block</word>
@@ -423,10 +442,11 @@
<word key="__api_calendar_comments" js="0">Comments</word>
<word key="__api_calendar_reviews" js="0">Reviews</word>
<word key="__api_calendar_calendars" js="0">Calendars</word>
<word key="__api_calendar_venues" js="0">Venues</word>
<word key="calendar_activity_stream_rsvp" js="0"><![CDATA[%s is attending <a href='%s'>%s</a>]]></word>
<word key="all_activity_calendar_streamitems" js="0">When a member RSVPs to an event</word>
<word key="notifications__calendar_Events" js="0">Calendar</word>
<word key="notifications__event_reminder" js="0">Event Reminders</word>
<word key="notifications__calendar_Events" js="0">Event Reminders</word>
<word key="notifications__calendar_Events_desc" js="0">These notifications are sent when an event you have asked to receive a reminder about is coming up.</word>
<word key="mailsub__calendar_notification_event_reminder" js="0"><![CDATA[Event Reminder for {$content->mapped("title")|raw}]]></word>
<word key="email_event_reminder" js="0"><![CDATA[There's now less than %s to go until <a href='%s'>%s</a>.]]></word>
<word key="email_event_reminder_plain" js="0">There's now less than %s to go until %s</word>
+6 -3
View File
@@ -2,17 +2,20 @@
"admin": {
"calendars": {
"default_controller": null,
"protected": 0
"protected": 0,
"default": 1
},
"venues": {
"default_controller": "",
"protected": false
"protected": 0,
"default": 0
}
},
"front": {
"calendar": {
"default_controller": "view",
"protected": 0
"protected": 0,
"default": 1
}
}
}
+132 -27
View File
@@ -1027,18 +1027,100 @@
"zerofill": false
},
"event_meta_data": {
"name": "event_meta_data",
"type": "TINYINT",
"length": 1,
"decimals": null,
"values": [],
"allow_null": false,
"default": "0",
"comment": "",
"unsigned": true,
"auto_increment": false
},
"event_recurring_end_date": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "End date if this is a recurring event which ends",
"decimals": null,
"default": null,
"length": 0,
"name": "event_recurring_end_date",
"type": "DATETIME",
"unsigned": false,
"values": [],
"zerofill": false
},
"event_timezone": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": 0,
"length": 1,
"name": "event_meta_data",
"type": "BIT",
"default": null,
"length": 255,
"name": "event_timezone",
"type": "VARCHAR",
"unsigned": false,
"values": [],
"zerofill": false
},
"event_edit_time": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": null,
"length": 10,
"name": "event_edit_time",
"type": "INT",
"unsigned": false,
"values": [],
"zerofill": false
},
"event_edit_member_name": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": null,
"length": 255,
"name": "event_edit_member_name",
"type": "VARCHAR",
"unsigned": false,
"values": [],
"zerofill": false
},
"event_append_edit": {
"allow_null": true,
"auto_increment": false,
"binary": false,
"comment": "",
"decimals": null,
"default": "0",
"length": 1,
"name": "event_append_edit",
"type": "TINYINT",
"unsigned": false,
"values": [],
"zerofill": false
},
"event_edit_reason": {
"name": "event_edit_reason",
"type": "VARCHAR",
"length": 255,
"decimals": null,
"values": null,
"allow_null": true,
"default": null,
"comment": "",
"unsigned": false,
"zerofill": false,
"auto_increment": false,
"binary": false
}
},
"indexes": {
@@ -1096,20 +1178,6 @@
"event_calendar_id"
]
},
"recurring_events": {
"type": "key",
"name": "recurring_events",
"length": [
180,
null,
null
],
"columns": [
"event_recurring",
"event_approved",
"event_calendar_id"
]
},
"ip_lookup": {
"type": "key",
"name": "ip_lookup",
@@ -1123,31 +1191,48 @@
"event_venue": {
"type": "key",
"name": "event_venue",
"columns": [
"event_venue"
],
"length": [
null
],
"columns": [
"event_venue"
]
},
"event_album": {
"type": "key",
"name": "event_album",
"columns": [
"event_album",
"event_approved",
"event_saved"
],
"length": [
null,
null,
null
],
"columns": [
"event_album",
"event_approved",
"event_saved"
]
},
"recurring_events": {
"type": "key",
"name": "recurring_events",
"length": [
223,
null,
null,
null,
null
],
"columns": [
"event_recurring",
"event_recurring_end_date",
"event_approved",
"event_calendar_id",
"event_start_date"
]
}
},
"collation": "utf8mb4_unicode_ci",
"engine": "InnoDB",
"comment": "",
"reporting": "count"
},
"calendar_import_feeds": {
@@ -1324,6 +1409,16 @@
"columns": [
"feed_last_run"
]
},
"member": {
"type": "key",
"name": "member",
"columns": [
"feed_member_id"
],
"length": [
null
]
}
},
"comment": "",
@@ -1824,6 +1919,16 @@
"length": [
null
]
},
"member": {
"type": "key",
"name": "member",
"columns": [
"reminder_member_id"
],
"length": [
null
]
}
}
},
+5
View File
@@ -4,6 +4,11 @@
"default": "1",
"report": "full"
},
{
"key": "calendar_block_past_changes",
"default": "0",
"report": "full"
},
{
"key": "calendar_date_format",
"default": "d_lm_y",
File diff suppressed because it is too large. Load diff
+93 -1
View File
@@ -255,5 +255,97 @@
"103035": "4.3.6",
"103036": "4.3.6",
"103037": "4.3.6",
"103038": "4.3.6"
"103038": "4.3.6",
"103039": "4.3.6",
"104000": "4.4.0 Beta 1",
"104001": "4.4.0 Beta 2",
"104002": "4.4.0 Beta 3",
"104004": "4.4.0 Beta 4",
"104003": "4.4.0 Beta 4",
"104005": "4.4.0",
"104006": "4.4.0",
"104007": "4.4.0",
"104008": "4.4.0",
"104009": "4.4.1",
"104010": "4.4.1 Beta 2",
"104011": "4.4.1",
"104012": "4.4.1",
"104013": "4.4.1",
"104014": "4.4.1",
"104015": "4.4.2 Beta 1",
"104016": "4.4.2",
"104017": "4.4.2",
"104018": "4.4.2",
"104019": "4.4.2",
"104020": "4.4.2",
"104021": "4.4.3 Beta 1",
"104022": "4.4.3 Beta 2",
"104023": "4.4.3",
"104024": "4.4.3",
"104025": "4.4.3",
"104026": "4.4.4 Beta 1",
"104027": "4.4.4",
"104028": "4.4.4",
"104029": "4.4.4",
"104030": "4.4.5 Beta 1",
"104031": "4.4.5 Beta 2",
"104032": "4.4.5 Beta 2",
"104033": "4.4.5",
"104034": "4.4.5",
"104035": "4.4.5",
"104036": "4.4.5",
"104037": "4.4.5",
"104038": "4.4.6",
"104039": "4.4.6",
"104040": "4.4.6",
"104041": "4.4.7 Beta 1",
"104042": "4.4.7 Beta 2",
"104043": "4.4.7 Beta 3",
"104044": "4.4.7",
"104045": "4.4.8 Beta 1",
"104046": "4.4.8 Beta 2",
"104047": "4.4.8",
"104048": "4.4.9 Beta 1",
"104049": "4.4.9",
"104050": "4.4.9",
"104051": "4.4.9",
"104052": "4.4.9",
"104053": "4.4.9.1",
"104054": "4.4.9.1",
"104055": "4.4.9.2",
"104056": "4.4.9.2",
"104057": "4.4.10 Beta 1",
"104058": "4.4.10 Beta 2",
"104059": "4.4.10 Beta 3",
"104060": "4.4.10 Beta 4",
"104061": "4.4.10",
"104062": "4.4.10",
"104063": "4.4.10",
"104064": "4.4.10",
"104065": "4.4.10",
"104066": "4.4.10",
"104067": "4.4.10",
"104068": "4.4.10",
"104069": "4.4.10",
"105013": "4.5.0 Beta 1",
"105014": "4.5.0 Beta 1",
"105015": "4.5.0 Beta 2",
"105016": "4.5.0 Beta 3",
"105017": "4.5.0 Beta 4",
"105018": "4.5.0 Beta 4",
"105019": "4.5.0 Beta 4",
"105020": "4.5.0 Beta 4",
"105021": "4.5.0 Beta 5",
"105022": "4.5.0 Beta 6",
"105023": "4.5.0 Beta 6",
"105024": "4.5.0 Beta 7",
"105025": "4.5.0 Beta 8",
"105026": "4.5.0 Beta 8",
"105027": "4.5.0 Beta 8",
"105028": "4.5.0 Beta 9",
"105029": "4.5.0 Beta 10",
"105030": "4.5.0 Beta 11",
"105031": "4.5.0 Beta 11",
"105032": "4.5.0 Beta 12",
"105100": "4.5.0"
}