Version 4.7.13
This commit is contained in:
1 parent
fd22d99e69
commit
7124a02564
954 files changed
+29277
-59308
No files matched your search
+14
-15
@@ -19,6 +19,12 @@ Brick/math
|
||||
Website: https://github.com/brick/math
|
||||
License: http://opensource.org/licenses/MIT
|
||||
|
||||
Browser Icons
|
||||
Description: Browser logo icons for UI
|
||||
Location: applications/core/interface/logos/browsers
|
||||
Website: https://github.com/alrra/browser-logos
|
||||
License: https://github.com/alrra/browser-logos/blob/main/LICENSE.txt
|
||||
|
||||
Clipboard
|
||||
Description: Cross browser copy to clipboard functionality
|
||||
Location: applications/core/interface/clipboard
|
||||
@@ -29,7 +35,7 @@ Clipboard
|
||||
CKEditor
|
||||
Description: Provides the editor functionality for submitting content.
|
||||
Location: In development: applications/core/dev/ckeditor (custom build with additional plugins)
|
||||
Included version: 4.20.1
|
||||
Included version: 4.21.0
|
||||
Website: http://ckeditor.com
|
||||
License: http://www.gnu.org/copyleft/lesser.html
|
||||
|
||||
@@ -120,17 +126,10 @@ IcoMoon
|
||||
Website: https://icomoon.io/
|
||||
License: http://creativecommons.org/licenses/by/4.0/
|
||||
|
||||
IntersectionObserver Polyfill
|
||||
Description: W3C polyfill for IntersectionObserver in browsers that don't support it (Webkit & IE)
|
||||
Location: dev/js/library/IntersectionObserver/IntersectionObserver.js
|
||||
Included version: [no version number]
|
||||
Website: https://github.com/w3c/IntersectionObserver/tree/master/polyfill
|
||||
License: https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
|
||||
|
||||
jQuery
|
||||
Description: JavaScript Library
|
||||
Location: In development: dev/js/library/jquery/jquery-3.5.1.min.js
|
||||
Included version: 3.5.1
|
||||
Location: In development: dev/js/library/jquery/jquery.js
|
||||
Included version: 3.7.0
|
||||
Website: http://jquery.com
|
||||
License: http://jquery.org/license
|
||||
|
||||
@@ -164,8 +163,8 @@ jQuery.menuaim.js
|
||||
|
||||
jQuery Migrate
|
||||
Description: Migration tool for jQuery
|
||||
Location: In development: dev/js/library/jquery/jquery-migrate-3.3.0.js
|
||||
Included version: 3.3.0
|
||||
Location: In development: dev/js/library/jquery/jquery-migrate.js
|
||||
Included version: 3.4.1
|
||||
Website: https://github.com/jquery/jquery-migrate/
|
||||
License: https://github.com/jquery/jquery-migrate/blob/master/LICENSE.txt
|
||||
|
||||
@@ -193,7 +192,7 @@ jQuery.transform.js
|
||||
jQuery UI
|
||||
Description: Javascript library for drag+drop, resizing, date polyfill
|
||||
Location: applications/core/interface/jquery/jquery-ui.js
|
||||
Included version: 1.13.1
|
||||
Included version: 1.13.2
|
||||
Website: http://jqueryui.com
|
||||
License: http://jquery.org/license
|
||||
|
||||
@@ -297,7 +296,7 @@ phpQuery
|
||||
PHP User Agent Parser
|
||||
Description: Parses user agent strings
|
||||
Location: system/3rd_party/PhpUserAgent
|
||||
Included Version: 0.7.0
|
||||
Included Version: 1.7.0
|
||||
Website: https://github.com/donatj/PhpUserAgent
|
||||
License: http://opensource.org/licenses/mit-license.php
|
||||
|
||||
@@ -350,7 +349,7 @@ Web Push Library for PHP
|
||||
Whoops
|
||||
Description: Provides error handling for development mode
|
||||
Location: dev/Whoops
|
||||
Included Version: 2.14.5
|
||||
Included Version: 2.15.2
|
||||
Website: http://filp.github.io/whoops/
|
||||
License: https://github.com/filp/whoops/blob/master/LICENSE.md
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
=============================[NOTE]=============================
|
||||
IPS 4.7.8 (107643)
|
||||
IPS 4.7.13 (107712)
|
||||
=============================[NOTE]=============================
|
||||
|
||||
Invision Community End User License Agreement
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<javascript app="blog">
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.grid.js" javascript_type="controller" javascript_version="107643" javascript_position="1000050"><![CDATA[/**
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.grid.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -37,7 +37,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.list.js" javascript_type="controller" javascript_version="107643" javascript_position="1000050">/**
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.list.js" javascript_type="controller" javascript_version="107712" javascript_position="1000050">/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -66,7 +66,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));</file>
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.manageCategories.js" javascript_type="controller" javascript_version="107643" javascript_position="1000100"><![CDATA[/**
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.manageCategories.js" javascript_type="controller" javascript_version="107712" javascript_position="1000100"><![CDATA[/**
|
||||
* Invision Community
|
||||
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
|
||||
*
|
||||
@@ -343,7 +343,7 @@
|
||||
}
|
||||
});
|
||||
}(jQuery, _));]]></file>
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="107643" javascript_position="1000150"><![CDATA[/* CLASS LIST TEMPLATES */
|
||||
<file javascript_app="blog" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="107712" javascript_position="1000150"><![CDATA[/* CLASS LIST TEMPLATES */
|
||||
ips.templates.set('blog.view.addButton', "\
|
||||
<button type=\"button\" class=\"ipsButton ipsButton_primary ipsHide\" data-action=\"addNew\">{{#lang}}manage_cats_new_row{{/lang}}</button>\
|
||||
");
|
||||
@@ -373,7 +373,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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<language>
|
||||
<app key="blog" version="107643">
|
||||
<app key="blog" version="107712">
|
||||
<word key="__app_blog" js="0">Blogs</word>
|
||||
<word key="frontnavigation_blogs" js="0">Blogs</word>
|
||||
<word key="__indefart_blog_entry_comment" js="0">a comment on a blog entry</word>
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
{{endif}}
|
||||
</li>
|
||||
{{endif}}
|
||||
{{if \IPS\Settings::i()->blog_allow_grid AND !$forMobile AND member.member_id}}
|
||||
{{if \IPS\Settings::i()->blog_allow_grid AND !$forMobile AND member.member_id and member.optionalCookiesAllowed}}
|
||||
<li class='ipsType_center ipsMargin_bottom:none'>
|
||||
<ul class='ipsButton_split'>
|
||||
<li class='ipsType_center'>
|
||||
@@ -241,7 +241,8 @@
|
||||
{{if $entry->isFutureDate() || $entry->mapped('pinned') || $entry->mapped('featured') || $entry->hidden() === -1 || $entry->hidden() === 1 || $entry->status === 'draft'}}
|
||||
{{if $entry->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$entry->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $entry->hidden() === -1}}
|
||||
{{endif}}
|
||||
{{if $entry->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$entry->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $entry->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
@@ -344,7 +345,8 @@
|
||||
{{if $blog->latestEntry()->isFutureDate() || $blog->latestEntry()->mapped('pinned') || $blog->latestEntry()->mapped('featured') || $blog->latestEntry()->hidden() === -1 || $blog->latestEntry()->hidden() === 1 || $blog->latestEntry()->status === 'draft'}}
|
||||
{{if $blog->latestEntry()->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$blog->latestEntry()->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $blog->latestEntry()->hidden() === -1}}
|
||||
{{endif}}
|
||||
{{if $blog->latestEntry()->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$blog->latestEntry()->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $blog->latestEntry()->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
@@ -744,9 +746,14 @@
|
||||
<strong class='ipsType_minorHeading'>{lang="blog_comments" pluralize="$blog->_comments"}</strong><br>
|
||||
<strong class='ipsType_normal'>{number="$blog->_comments"}</strong>
|
||||
</li>
|
||||
<li class='ipsGrid_span4'>
|
||||
<strong class='ipsType_minorHeading'>{lang="blog_views" pluralize="$blog->num_views"}</strong><br>
|
||||
<strong class='ipsType_normal'>{number="$blog->num_views"}</strong>
|
||||
<li class='ipsGrid_span4' id='elBlogViews'>
|
||||
<strong class='ipsType_minorHeading'>{lang="blog_views" pluralize="$blog->num_views"}</strong><br>
|
||||
{{if \IPS\Application::appIsEnabled('cloud') and \IPS\Member::loggedIn()->modPermission('can_view_moderation_log')}}
|
||||
{{$url = "app=cloud&module=analytics&controller=analytics&contentClass=" . get_class($blog) . "&contentId=" . $blog->id;}}
|
||||
<strong class='ipsType_normal ipsType_blendLinks'><a href='{url="$url"}' data-ipsDialog data-ipsDialog-title='{lang="analytics"}' data-ipsTooltip title='{lang="analytics"}'>{number="$blog->num_views"}</a></strong>
|
||||
{{else}}
|
||||
<strong class='ipsType_normal'>{number="$blog->num_views"}</strong>
|
||||
{{endif}}
|
||||
</li>
|
||||
{{else}}
|
||||
<li class='ipsGrid_span12'>
|
||||
@@ -944,7 +951,8 @@
|
||||
<span>
|
||||
{{if $entry->isFutureDate() and $entry->status !== 'draft'}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$entry->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span>
|
||||
{{elseif $entry->hidden() === -1}}
|
||||
{{endif}}
|
||||
{{if $entry->hidden() === -1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$entry->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
|
||||
{{elseif $entry->hidden() === 1}}
|
||||
<span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
|
||||
@@ -1016,7 +1024,8 @@
|
||||
{{if $entry->isFutureDate() || $entry->mapped('pinned') || $entry->mapped('featured') || $entry->hidden() === -1 || $entry->hidden() === 1}}
|
||||
{{if $entry->isFutureDate() and $entry->status !== 'draft'}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$entry->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $entry->hidden() === 1}}
|
||||
{{endif}}
|
||||
{{if $entry->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
{{endif}}
|
||||
{{if $entry->mapped('pinned')}}
|
||||
@@ -1201,7 +1210,8 @@
|
||||
{{if $entry->isFutureDate() || $entry->mapped('pinned') || $entry->mapped('featured') || $entry->hidden() === -1 || $entry->hidden() === 1 || $entry->hidden() === -2 || $entry->status === 'draft'}}
|
||||
{{if $entry->isFutureDate() and $entry->status !== 'draft'}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$entry->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $entry->hidden() === -1}}
|
||||
{{endif}}
|
||||
{{if $entry->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$entry->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $entry->hidden() === -2}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$entry->deletedBlurb()}'><i class='fa fa-trash'></i></span></span>
|
||||
@@ -1253,7 +1263,7 @@
|
||||
<p class='ipsType_reset ipsType_blendLinks'>
|
||||
{{if $entry->category_id}}
|
||||
{{if $entry->date > time()}}
|
||||
{lang="entry_future_posted_with_cat" htmlsprintf="$entry->author()->link(),$entry->category()->url()"}
|
||||
{lang="entry_future_posted_with_cat" htmlsprintf="$entry->author()->link(),$entry->category()->link()"}
|
||||
{{else}}
|
||||
{lang="entry_posted_with_cat" htmlsprintf="$entry->author()->link(),$entry->category()->link()"}
|
||||
{{endif}}
|
||||
@@ -1264,7 +1274,7 @@
|
||||
{lang="entry_posted" htmlsprintf="$entry->author()->link()"}
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
· {datetime="$entry->date"}
|
||||
{datetime="$entry->date"}
|
||||
</p>
|
||||
<p class='ipsType_light ipsType_reset'>{lang="num_views_with_number" pluralize="$entry->views"}</p>
|
||||
</div>
|
||||
@@ -1274,6 +1284,10 @@
|
||||
{{if \count( $entry->shareLinks() )}}
|
||||
{template="shareButton" app="core" group="sharelinks" params="$entry"}
|
||||
{{endif}}
|
||||
{{if \IPS\Application::appIsEnabled('cloud')}}
|
||||
{template="spam" app="cloud" group="spam" params="$entry"}
|
||||
{{endif}}
|
||||
{template="analyticsItemLink" app="core" group="system" params="$entry"}
|
||||
{template="promote" app="core" group="global" params="$entry"}
|
||||
{template="follow" app="core" group="global" params="'blog', 'entry', $entry->id, $entry->followersCount()"}
|
||||
</div>
|
||||
@@ -1344,19 +1358,19 @@
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unpin' ) )}' title='{lang="unpin_title_blog"}'>{lang="unpin"}</a></li>
|
||||
{{endif}}
|
||||
{{if $entry->canHide()}}
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->setQueryString( array( 'do' => 'moderate', 'action' => 'hide' ) )}' title='{lang="hide_title_blog"}' data-ipsDialog data-ipsDialog-title="{lang="hide"}">{lang="hide"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->setQueryString( array( 'do' => 'moderate', 'action' => 'hide' ) )}' title='{lang="hide_title_blog"}' {{if member.modPermission('can_manage_alerts') AND $entry->author()->member_id }} data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="hide"}" data-ipsDialog-destructOnClose='true' {{endif}}>{lang="hide"}</a></li>
|
||||
{{endif}}
|
||||
{{if $entry->canUnhide()}}
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unhide' ) )}' title='{{if $entry->hidden() === 1}}{lang="approve_title_blog"}{{else}}{lang="unhide_title_blog"}{{endif}}'>{{if $entry->hidden() === 1}}{lang="approve"}{{else}}{lang="unhide"}{{endif}}</a></li>
|
||||
{{endif}}
|
||||
{{if $entry->canLock()}}
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' title='{lang="blog_lock_title"}'>{lang="lock"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'lock' ) )}' title='{lang="blog_lock_title"}' {{if member.modPermission('can_manage_alerts') AND $entry->author()->member_id }} data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title="{lang="lock"}" data-ipsDialog-destructOnClose='true' {{endif}}>{lang="lock"}</a></li>
|
||||
{{endif}}
|
||||
{{if $entry->canUnlock()}}
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'unlock' ) )}' title='{lang="blog_unlock_title"}'>{lang="unlock"}</a></li>
|
||||
{{endif}}
|
||||
{{if $entry->canMove()}}
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->setQueryString( array( 'do' => 'move' ) )}' data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title="{lang="move"}" title='{lang="blog_move_title"}'>{lang="move"}</a></li>
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->setQueryString( array( 'do' => 'move', '_new' => 1 ) )}'>{lang="move"}</a></li>
|
||||
{{endif}}
|
||||
{{if $entry->canDelete()}}
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->csrf()->setQueryString( array( 'do' => 'moderate', 'action' => 'delete' ) )}' data-confirm title='{lang="blog_delete_title"}'>{lang="delete"}</a></li>
|
||||
@@ -1364,10 +1378,10 @@
|
||||
{{if $entry->canOnMessage( 'add' )}}
|
||||
<li class='ipsMenu_item'><a href='{$entry->url()->setQueryString( array( 'do' => 'messageForm' ) )}' data-ipsDialog data-ipsDialod-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='{$entry->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='{$entry->url()->setQueryString( array( 'do' => 'modLog' ) )}'>{lang="moderation_log"}</a></li>
|
||||
{{endif}}
|
||||
{{endif}}
|
||||
</ul>
|
||||
</li>
|
||||
@@ -1388,6 +1402,10 @@
|
||||
{{if \count( $entry->shareLinks() )}}
|
||||
{template="shareButton" app="core" group="sharelinks" params="$entry, 'verySmall', 'light'"}
|
||||
{{endif}}
|
||||
{{if \IPS\Application::appIsEnabled('cloud')}}
|
||||
{template="spam" app="cloud" group="spam" params="$entry"}
|
||||
{{endif}}
|
||||
{template="analyticsItemLink" app="core" group="system" params="$entry"}
|
||||
{template="follow" app="core" group="global" params="'blog', 'entry', $entry->id, $entry->followersCount()"}
|
||||
{template="promote" app="core" group="global" params="$entry"}
|
||||
</div>
|
||||
@@ -1734,7 +1752,8 @@
|
||||
{{if $blog->latestEntry()->isFutureDate() || $blog->latestEntry()->mapped('pinned') || $blog->latestEntry()->mapped('featured') || $blog->latestEntry()->hidden() === -1 || $blog->latestEntry()->hidden() === 1 || $blog->latestEntry()->status === 'draft'}}
|
||||
{{if $blog->latestEntry()->isFutureDate()}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_warning" data-ipsTooltip title='{$blog->latestEntry()->futureDateBlurb()}'><i class='fa fa-clock-o'></i></span></span>
|
||||
{{elseif $blog->latestEntry()->hidden() === -1}}
|
||||
{{endif}}
|
||||
{{if $blog->latestEntry()->hidden() === -1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$blog->latestEntry()->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span></span>
|
||||
{{elseif $blog->latestEntry()->hidden() === 1}}
|
||||
<span><span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span></span>
|
||||
|
||||
@@ -549,5 +549,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"
|
||||
}
|
||||
@@ -300,4 +300,157 @@ class _entry extends \IPS\Content\Controller
|
||||
{
|
||||
return $form->customTemplate( array( \IPS\Theme::i()->getTemplate( 'submit', 'blog' ), 'submitFormTemplate' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Move
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function move()
|
||||
{
|
||||
try
|
||||
{
|
||||
$item = \IPS\blog\Entry::loadAndCheckPerms( \IPS\Request::i()->id );
|
||||
if ( !$item->canMove() )
|
||||
{
|
||||
throw new \DomainException;
|
||||
}
|
||||
|
||||
$container = $item->container();
|
||||
|
||||
$wizard = new \IPS\Helpers\Wizard( array(
|
||||
'blog' => function( $data ) use ( $container ) {
|
||||
$data['item'] = \IPS\Request::i()->id;
|
||||
$item = \IPS\blog\Entry::loadAndCheckPerms( $data['item'] );
|
||||
$form = new \IPS\Helpers\Form;
|
||||
$form->class = 'ipsForm_vertical';
|
||||
$form->add( new \IPS\Helpers\Form\Node( 'move_to', NULL, TRUE, array(
|
||||
'class' => \get_class( $item->container() ),
|
||||
'permissionCheck' => function( $node ) use ( $item )
|
||||
{
|
||||
try
|
||||
{
|
||||
/* If the item is in a club, only allow moving to other clubs that you moderate */
|
||||
if ( \IPS\IPS::classUsesTrait( $item->container(), 'IPS\Content\ClubContainer' ) and $item->container()->club() )
|
||||
{
|
||||
return $item::modPermission( 'move', \IPS\Member::loggedIn(), $node ) and $node->can( 'add' ) ;
|
||||
}
|
||||
|
||||
if ( $node->can( 'add' ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
catch( \OutOfBoundsException $e ) { }
|
||||
|
||||
return false;
|
||||
},
|
||||
'clubs' => TRUE
|
||||
) ) );
|
||||
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
$data['blog'] = $values['move_to'];
|
||||
return $data;
|
||||
}
|
||||
|
||||
return $form;
|
||||
},
|
||||
'category' => function( $data ) {
|
||||
$item = \IPS\blog\Entry::loadAndCheckPerms( $data['item'] );
|
||||
$newBlog = $data['blog'];
|
||||
|
||||
$form = new \IPS\Helpers\Form;
|
||||
|
||||
$categories = \IPS\blog\Entry\Category::roots( NULL, NULL, array( 'entry_category_blog_id=?', $newBlog->id ) );
|
||||
$choiceOptions = array( 0 => 'entry_category_choice_new' );
|
||||
$choiceToggles = array( 0 => array( 'blog_entry_new_category' ) );
|
||||
|
||||
if( \count( $categories ) )
|
||||
{
|
||||
$choiceOptions[1] = 'entry_category_choice_existing';
|
||||
$choiceToggles[1] = array( 'entry_category_id' );
|
||||
}
|
||||
|
||||
$form->add( new \IPS\Helpers\Form\Radio( 'entry_category_choice', 0, FALSE, array(
|
||||
'options' => $choiceOptions,
|
||||
'toggles' => $choiceToggles
|
||||
) ) );
|
||||
|
||||
if( \count( $categories ) )
|
||||
{
|
||||
$options = array();
|
||||
foreach ( $categories as $category )
|
||||
{
|
||||
$options[ $category->id ] = $category->name;
|
||||
}
|
||||
|
||||
$form->add( new \IPS\Helpers\Form\Select( 'entry_category_id', NULL, FALSE, array( 'options' => $options, 'parse' => 'normal' ), NULL, NULL, NULL, "entry_category_id" ) );
|
||||
}
|
||||
$form->add( new \IPS\Helpers\Form\Text( 'blog_entry_new_category', NULL, TRUE, array(), NULL, NULL, NULL, "blog_entry_new_category" ) );
|
||||
$this->moderationAlertField( $form, $item );
|
||||
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
if ( $data['blog'] === NULL OR !$data['blog']->can( 'add' ) )
|
||||
{
|
||||
\IPS\Output::i()->error( 'node_move_invalid', '1S136/L', 403, '' );
|
||||
}
|
||||
|
||||
/* If this item is read, we need to re-mark it as such after moving */
|
||||
if( $item instanceof \IPS\Content\ReadMarkers )
|
||||
{
|
||||
$unread = $item->unread();
|
||||
}
|
||||
|
||||
$item->move( $data['blog'], FALSE );
|
||||
|
||||
|
||||
if( $values['entry_category_choice'] == 1 and $values['entry_category_id'] )
|
||||
{
|
||||
$item->category_id = $values['entry_category_id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$newCategory = new \IPS\blog\Entry\Category;
|
||||
$newCategory->name = $values['blog_entry_new_category'];
|
||||
$newCategory->seo_name = \IPS\Http\Url\Friendly::seoTitle( $values['blog_entry_new_category'] );
|
||||
|
||||
$newCategory->blog_id = $item->blog_id;
|
||||
$newCategory->save();
|
||||
|
||||
$item->category_id = $newCategory->id;
|
||||
}
|
||||
|
||||
$item->save();
|
||||
|
||||
/* Mark it as read */
|
||||
if( $item instanceof \IPS\Content\ReadMarkers and $unread == 0 )
|
||||
{
|
||||
$item->markRead( NULL, NULL, NULL, TRUE );
|
||||
}
|
||||
|
||||
if( isset( $values['moderation_alert_content']) AND $values['moderation_alert_content'] )
|
||||
{
|
||||
$item->sendModerationAlert($values, $item);
|
||||
}
|
||||
|
||||
\IPS\Session::i()->modLog( 'modlog__action_move', array( $item::$title => TRUE, $item->url()->__toString() => FALSE, $item->mapped( 'title' ) ?: ( method_exists( $item, 'item' ) ? $item->item()->mapped( 'title' ) : NULL ) => FALSE ), $item );
|
||||
|
||||
\IPS\Output::i()->redirect( $item->url() );
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
), $item->url()->setQueryString( array( 'do' => 'move' ) ) );
|
||||
|
||||
$this->_setBreadcrumbAndTitle( $item );
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack( 'move_item', FALSE, array( 'sprintf' => array( \IPS\Member::loggedIn()->language()->addToStack( \IPS\blog\Entry::$title ) ) ) );
|
||||
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'global', 'core' )->box( $wizard, array( 'ipsPad' ) );
|
||||
}
|
||||
catch ( \Exception $e )
|
||||
{
|
||||
\IPS\Output::i()->error( 'node_error', '2S136/D', 403, '' );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -107,14 +107,10 @@ class _view extends \IPS\Helpers\CoverPhoto\Controller
|
||||
$table->sortBy = \IPS\Request::i()->sortby ?: 'date';
|
||||
|
||||
/* Update views */
|
||||
\IPS\Db::i()->update(
|
||||
'blog_blogs',
|
||||
"`blog_num_views`=`blog_num_views`+1",
|
||||
array( "blog_id=?", $this->blog->id ),
|
||||
array(),
|
||||
NULL,
|
||||
\IPS\Db::LOW_PRIORITY
|
||||
);
|
||||
if ( !\IPS\Request::i()->isAjax() )
|
||||
{
|
||||
$this->blog->updateViews();
|
||||
}
|
||||
|
||||
/* Online User Location */
|
||||
if( !$this->blog->social_group )
|
||||
@@ -386,6 +382,10 @@ class _view extends \IPS\Helpers\CoverPhoto\Controller
|
||||
{
|
||||
$options['autocomplete']['filterProfanity'] = TRUE;
|
||||
}
|
||||
if ( \IPS\Settings::i()->tags_alphabetical )
|
||||
{
|
||||
$options['autocomplete']['alphabetical'] = TRUE;
|
||||
}
|
||||
|
||||
$options['autocomplete']['prefix'] = \IPS\Content\Item::canPrefix( NULL, $this->blog );
|
||||
$options['autocomplete']['disallowedCharacters'] = array( '#' ); // @todo Pending \IPS\Http\Url rework, hashes cannot be used in URLs
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107644,
|
||||
"name": "4.7.8",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107645,
|
||||
"name": "4.7.8",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107660,
|
||||
"name": "4.7.9 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107661,
|
||||
"name": "4.7.9 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107662,
|
||||
"name": "4.7.9 Beta 3",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107663,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107664,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107665,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107666,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107667,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107668,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107680,
|
||||
"name": "4.7.10 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": true,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/view\/entry"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107681,
|
||||
"name": "4.7.10 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107682,
|
||||
"name": "4.7.10",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107683,
|
||||
"name": "4.7.10",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107684,
|
||||
"name": "4.7.10",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107690,
|
||||
"name": "4.7.11 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": true,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/browse\/indexButtons",
|
||||
"front\/browse\/indexGridEntry",
|
||||
"front\/browse\/rows",
|
||||
"front\/view\/blogHeader",
|
||||
"front\/view\/blogViewLarge",
|
||||
"front\/view\/blogViewMedium",
|
||||
"front\/view\/entry",
|
||||
"front\/widgets\/blogs"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107691,
|
||||
"name": "4.7.11 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107692,
|
||||
"name": "4.7.11",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107693,
|
||||
"name": "4.7.11",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107694,
|
||||
"name": "4.7.11",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107695,
|
||||
"name": "4.7.11.1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107700,
|
||||
"name": "4.7.12 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": true,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": true,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"files": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"orders": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"global\/\/dev\/js\/\/library\/"
|
||||
],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107701,
|
||||
"name": "4.7.12 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107702,
|
||||
"name": "4.7.12 Beta 3",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107703,
|
||||
"name": "4.7.12 Beta 4",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107704,
|
||||
"name": "4.7.12",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107710,
|
||||
"name": "4.7.13 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": true,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/view\/entry"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107711,
|
||||
"name": "4.7.13 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107712,
|
||||
"name": "4.7.13",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -23,7 +23,7 @@ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
*/
|
||||
class _Blog extends \IPS\Node\Model implements \IPS\Node\Ratings, \IPS\Content\Embeddable
|
||||
{
|
||||
use \IPS\Content\ClubContainer;
|
||||
use \IPS\Content\ClubContainer, \IPS\Content\ViewUpdates;
|
||||
|
||||
/**
|
||||
* @brief [ActiveRecord] Multiton Store
|
||||
|
||||
@@ -23,6 +23,8 @@ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
*/
|
||||
class _Category extends \IPS\Node\Model
|
||||
{
|
||||
use \IPS\Content\ViewUpdates;
|
||||
|
||||
/**
|
||||
* @brief [ActiveRecord] Multiton Store
|
||||
*/
|
||||
|
||||
@@ -27,7 +27,6 @@ class _Entry extends \IPS\Content\Item implements
|
||||
\IPS\Content\Followable,
|
||||
\IPS\Content\Shareable,
|
||||
\IPS\Content\ReadMarkers,
|
||||
\IPS\Content\Views,
|
||||
\IPS\Content\Polls,
|
||||
\IPS\Content\Ratings,
|
||||
\IPS\Content\EditHistory,
|
||||
@@ -37,7 +36,7 @@ class _Entry extends \IPS\Content\Item implements
|
||||
\IPS\Content\MetaData,
|
||||
\IPS\Content\Anonymous
|
||||
{
|
||||
use \IPS\Content\Reactable, \IPS\Content\Reportable;
|
||||
use \IPS\Content\Reactable, \IPS\Content\Reportable, \IPS\Content\ViewUpdates, \IPS\Content\Statistics;
|
||||
|
||||
/**
|
||||
* @brief Multiton Store
|
||||
|
||||
@@ -107,12 +107,9 @@ class _Application extends \IPS\Application
|
||||
$feed->addEvent( $event );
|
||||
}
|
||||
|
||||
$ics = $feed->buildICalendarFeed( $this->_calendar );
|
||||
$ics = $feed->buildICalendarFeed( $calendar );
|
||||
|
||||
\IPS\Output::i()->sendHeader( "Content-type: text/calendar; charset=UTF-8" );
|
||||
\IPS\Output::i()->sendHeader( 'Content-Disposition: inline; filename=calendarEvents.ics' );
|
||||
|
||||
print $ics;
|
||||
\IPS\Output::i()->sendOutput( $ics, 200, 'text/calendar', [ 'Content-Disposition' => \IPS\Output::getContentDisposition( 'inline', "calendarEvents.ics" ) ], FALSE, FALSE, FALSE );
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -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&module=calendars&controller=calendars"><![CDATA[{"lang_key":"menu__calendar_calendars_calendars","restriction":"calendars_manage","keywords":["edit calendar"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=calendars"><![CDATA[{"lang_key":"menu__calendar_calendars_calendars","restriction":"calendars_manage","keywords":["edit calendar","events"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=calendars&do=permissions"><![CDATA[{"lang_key":"menu__calendar_calendars_calendars","restriction":"calendars_manage","keywords":["calendar permissions"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=calendars&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&module=calendars&controller=calendars&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&module=calendars&controller=ical&do=upload&searchResult=form_feed_calendar_id"><![CDATA[{"lang_key":"feed_calendar_id","restriction":"calendar_feeds_manage","keywords":["calendar"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=ical&do=upload&searchResult=form_feed_file"><![CDATA[{"lang_key":"feed_file","restriction":"calendar_feeds_manage","keywords":["iCalendar file"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=ical&do=upload&searchResult=form_feed_member_id"><![CDATA[{"lang_key":"feed_member_id","restriction":"calendar_feeds_manage","keywords":["member"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=settings"><![CDATA[{"lang_key":"menu__calendar_calendars_settings","restriction":"settings_manage","keywords":["calendar settings"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=settings"><![CDATA[{"lang_key":"menu__calendar_calendars_settings","restriction":"settings_manage","keywords":["calendar settings","events"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=settings&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&module=calendars&controller=settings&searchResult=form_calendar_date_format"><![CDATA[{"lang_key":"calendar_date_format","restriction":"settings_manage","keywords":["calendar date format"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=settings&searchResult=form_calendar_default_view"><![CDATA[{"lang_key":"calendar_default_view","restriction":"settings_manage","keywords":["calendar layout"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=settings&searchResult=form_calendar_rss_feed"><![CDATA[{"lang_key":"calendar_rss_feed","restriction":"settings_manage","keywords":["calendar rss","events rss"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=settings&searchResult=form_calendar_venues_enabled"><![CDATA[{"lang_key":"calendar_venues_enabled","restriction":"settings_manage","keywords":["address","venue","venues"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&controller=settings&searchResult=form_ipb_calendar_mon"><![CDATA[{"lang_key":"ipb_calendar_mon","restriction":"settings_manage","keywords":["calendar start","monday","sunday"]}]]></acpsearch>
|
||||
<acpsearch key="app=calendar&module=calendars&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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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}} <i class='fa fa-caret-down'></i></a>
|
||||
{{endif}}
|
||||
<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="rtl"] .cCalendarEmbed_dates dt {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.cCalendarDate {
|
||||
background: rgb( var(--theme-area_background_reset) );
|
||||
}
|
||||
|
||||
.cCalendarDate > span {
|
||||
display: block;
|
||||
text-align: center;
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -28,7 +28,7 @@ class _Events
|
||||
* @param \IPS\Member|null $member The member (to take out any notification types a given member will never see) or NULL if this is for the ACP
|
||||
* @return array
|
||||
*/
|
||||
public static function configurationOptions( \IPS\Member $member = NULL )
|
||||
public static function configurationOptions( \IPS\Member $member = NULL ): array
|
||||
{
|
||||
return array(
|
||||
'event_reminder' => array(
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief Statistics Chart Extension
|
||||
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
|
||||
* @copyright (c) Invision Power Services, Inc.
|
||||
* @license https://www.invisioncommunity.com/legal/standards/
|
||||
* @subpackage Events
|
||||
* @since 26 Jan 2023
|
||||
*/
|
||||
|
||||
namespace IPS\calendar\extensions\core\Statistics;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Statistics Chart Extension
|
||||
*/
|
||||
class _Rsvp extends \IPS\core\Statistics\Chart
|
||||
{
|
||||
/**
|
||||
* @brief Controller
|
||||
*/
|
||||
public $controller = 'calendar_stats_rsvp';
|
||||
|
||||
/**
|
||||
* Render Chart
|
||||
*
|
||||
* @param \IPS\Http\Url $url URL the chart is being shown on.
|
||||
* @return \IPS\Helpers\Chart
|
||||
*/
|
||||
public function getChart( \IPS\Http\Url $url ): \IPS\Helpers\Chart
|
||||
{
|
||||
$chart = new \IPS\Helpers\Chart\Database( $url, 'calendar_event_rsvp', 'rsvp_date', '', array(
|
||||
'isStacked' => FALSE,
|
||||
'backgroundColor' => '#ffffff',
|
||||
'hAxis' => array( 'gridlines' => array( 'color' => '#f5f5f5' ) ),
|
||||
'lineWidth' => 1,
|
||||
'areaOpacity' => 0.4
|
||||
) );
|
||||
$chart->setExtension( $this );
|
||||
|
||||
$chart->groupBy = 'rsvp_response';
|
||||
|
||||
foreach( array( 0,1,2 ) as $response )
|
||||
{
|
||||
$chart->addSeries( \IPS\Member::loggedIn()->language()->addToStack('calendar_stats_rsvp_response_' . $response ), 'number', 'COUNT(*)', FALSE, $response );
|
||||
|
||||
}
|
||||
$chart->title = \IPS\Member::loggedIn()->language()->addToStack('calendar_stats_rsvp_title');
|
||||
$chart->availableTypes = array( 'AreaChart', 'ColumnChart', 'BarChart' );
|
||||
|
||||
return $chart;
|
||||
}
|
||||
}
|
||||
@@ -41,24 +41,7 @@ class _rsvp extends \IPS\Dispatcher\Controller
|
||||
*/
|
||||
protected function manage()
|
||||
{
|
||||
$chart = new \IPS\Helpers\Chart\Database( \IPS\Http\Url::internal( 'app=calendar&module=stats&controller=rsvp' ), 'calendar_event_rsvp', 'rsvp_date', '', array(
|
||||
'isStacked' => FALSE,
|
||||
'backgroundColor' => '#ffffff',
|
||||
'hAxis' => array( 'gridlines' => array( 'color' => '#f5f5f5' ) ),
|
||||
'lineWidth' => 1,
|
||||
'areaOpacity' => 0.4
|
||||
) );
|
||||
|
||||
$chart->groupBy = 'rsvp_response';
|
||||
|
||||
foreach( array( 0,1,2 ) as $response )
|
||||
{
|
||||
$chart->addSeries( \IPS\Member::loggedIn()->language()->addToStack('calendar_stats_rsvp_response_' . $response ), 'number', 'COUNT(*)', FALSE, $response );
|
||||
|
||||
}
|
||||
$chart->title = \IPS\Member::loggedIn()->language()->addToStack('calendar_stats_rsvp_title');
|
||||
$chart->availableTypes = array( 'AreaChart', 'ColumnChart', 'BarChart' );
|
||||
|
||||
$chart = \IPS\core\Statistics\Chart::loadFromExtension( 'calendar', 'Rsvp' )->getChart( \IPS\Http\Url::internal( "app=calendar&module=stats&controller=rsvp" ) );
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('menu__calendar_stats_rsvp');
|
||||
\IPS\Output::i()->output = (string) $chart;
|
||||
}
|
||||
|
||||
@@ -144,6 +144,11 @@ class _submit extends \IPS\Dispatcher\Controller
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=calendar&module=calendar&controller=submit', 'front', 'calendar_submit' ) );
|
||||
}
|
||||
|
||||
if( !$existing->canCopyEvent())
|
||||
{
|
||||
\IPS\Output::i()->error( 'no_module_permission', '2L179/9', 403, '' );
|
||||
}
|
||||
|
||||
/* Are we the author of the existing event? */
|
||||
if( $existing->author()->member_id !== \IPS\Member::loggedIn()->member_id )
|
||||
{
|
||||
|
||||
@@ -87,6 +87,12 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
{
|
||||
\IPS\Output::i()->breadcrumb[] = array( NULL, $this->_calendar->_title );
|
||||
}
|
||||
|
||||
/* Update Views */
|
||||
if ( !\IPS\Request::i()->isAjax() )
|
||||
{
|
||||
$this->_calendar->updateViews();
|
||||
}
|
||||
}
|
||||
|
||||
if( $this->_calendar !== NULL AND $this->_calendar->_id )
|
||||
@@ -155,7 +161,7 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
|
||||
try
|
||||
{
|
||||
$date = \IPS\calendar\Date::getDate( \IPS\Request::i()->y ?: NULL, \IPS\Request::i()->m ?: NULL, $day );
|
||||
$date = \IPS\calendar\Date::getDate( \IPS\Request::i()->y ?: NULL, \IPS\Request::i()->m ?: NULL, $day, 12 );
|
||||
|
||||
/* Get the events within this range */
|
||||
$events = \IPS\calendar\Event::retrieveEvents(
|
||||
@@ -478,7 +484,7 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
/* Do an IP lookup */
|
||||
try
|
||||
{
|
||||
$geo = \IPS\GeoLocation::getByIp( \IPS\Request::i()->ipAddress() );
|
||||
$geo = \IPS\GeoLocation::getRequesterLocation();
|
||||
$location = array( 'lat' => $geo->lat, 'lon' => $geo->long );
|
||||
}
|
||||
catch ( \Exception $e )
|
||||
@@ -662,7 +668,7 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
{
|
||||
\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js( 'front_overview.js', 'calendar', 'front' ) );
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack( '__app_calendar' );
|
||||
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'overview' )->wrapper( $featured, $nearme, $stream, $form, $mapMarkers, $online, $date );
|
||||
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'overview' )->wrapper( $featured, $nearme, $stream, $form, $mapMarkers, $online, $date, $this->_downloadLinks() );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -675,7 +681,7 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
public function getForm()
|
||||
{
|
||||
/* Search form */
|
||||
$form = new \IPS\Helpers\Form('form', 'search', \IPS\Http\Url::internal( 'app=calendar&module=calendar&controller=view&do=search' ) );
|
||||
$form = new \IPS\Helpers\Form('form', 'search', \IPS\Http\Url::internal( 'app=calendar&module=calendar&controller=view&do=search', 'front', 'calendar_event_search' ) );
|
||||
if ( \IPS\GeoLocation::enabled() )
|
||||
{
|
||||
$form->add( new \IPS\Helpers\Form\Text( 'location', FALSE, \IPS\Request::i()->location, array( 'placeholder' => \IPS\Member::loggedIn()->language()->addToStack( 'events_search_search_location') ) ) );
|
||||
@@ -745,7 +751,7 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
/* Do an IP lookup */
|
||||
try
|
||||
{
|
||||
$geo = \IPS\GeoLocation::getByIp( \IPS\Request::i()->ipAddress() );
|
||||
$geo = \IPS\GeoLocation::getRequesterLocation();
|
||||
$location = array( 'lat' => $geo->lat, 'lon' => $geo->long );
|
||||
}
|
||||
catch ( \Exception $e )
|
||||
@@ -886,7 +892,7 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
|
||||
if( \IPS\Request::i()->isAjax() ){
|
||||
|
||||
$countQuery = \IPS\Db::i()->select( $select, 'calendar_events', $where, NULL, array(), NULL, implode( " OR ", $having ) );
|
||||
$countQuery = \IPS\Db::i()->select( $select, 'calendar_events', $where, NULL, array(), NULL, is_array( $having ) ? implode( " OR ", $having ) : NULL );
|
||||
$countQuery->join( 'calendar_calendars', "event_calendar_id = cal_id" );
|
||||
$countQuery->join( 'core_clubs', "cal_club_id = id" );
|
||||
|
||||
@@ -906,6 +912,7 @@ class _view extends \IPS\Dispatcher\Controller
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
\IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack( '__app_calendar' );
|
||||
\IPS\Output::i()->output = \IPS\Theme::i()->getTemplate( 'overview' )->search( $form, $results, json_encode( $mapMarkers ) );
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107644,
|
||||
"name": "4.7.8",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107645,
|
||||
"name": "4.7.8",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107660,
|
||||
"name": "4.7.9 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": true,
|
||||
"theme": true,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"normal": {
|
||||
"added": [
|
||||
"subscribe_button"
|
||||
],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"js": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [
|
||||
"front\/global\/subscribeMenu"
|
||||
],
|
||||
"edited": [
|
||||
"front\/browse\/calendarHeader",
|
||||
"front\/overview\/header",
|
||||
"front\/overview\/wrapper",
|
||||
"front\/view\/view"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/profile.css"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107661,
|
||||
"name": "4.7.9 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107662,
|
||||
"name": "4.7.9 Beta 3",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107663,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107664,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107665,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107666,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107667,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107668,
|
||||
"name": "4.7.9",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107680,
|
||||
"name": "4.7.10 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107681,
|
||||
"name": "4.7.10 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107682,
|
||||
"name": "4.7.10",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107683,
|
||||
"name": "4.7.10",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107684,
|
||||
"name": "4.7.10",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107690,
|
||||
"name": "4.7.11 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": true,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/browse\/calendarHeader",
|
||||
"front\/view\/view"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107691,
|
||||
"name": "4.7.11 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107692,
|
||||
"name": "4.7.11",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107693,
|
||||
"name": "4.7.11",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107694,
|
||||
"name": "4.7.11",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107695,
|
||||
"name": "4.7.11.1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"added": [
|
||||
"app=calendar&module=calendars&controller=venues"
|
||||
],
|
||||
"edited": [
|
||||
"app=calendar&module=calendars&controller=calendars",
|
||||
"app=calendar&module=calendars&controller=settings"
|
||||
],
|
||||
"removed": []
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107700,
|
||||
"name": "4.7.12 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": true,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": true,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": true,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": true,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"files": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"orders": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"global\/\/dev\/js\/\/library\/"
|
||||
],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"normal": {
|
||||
"added": [
|
||||
"r__rsvp",
|
||||
"r__rsvp_manage"
|
||||
],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"js": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107701,
|
||||
"name": "4.7.12 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107702,
|
||||
"name": "4.7.12 Beta 3",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107703,
|
||||
"name": "4.7.12 Beta 4",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107704,
|
||||
"name": "4.7.12",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107710,
|
||||
"name": "4.7.13 Beta 1",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": true,
|
||||
"themeSettings": false,
|
||||
"javascript": true,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"files": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"calendar\/front\/controllers\/overview\/ips.overview.search.js"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"orders": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"html": {
|
||||
"added": [],
|
||||
"edited": [
|
||||
"front\/events\/event",
|
||||
"front\/overview\/header",
|
||||
"front\/view\/view"
|
||||
],
|
||||
"removed": []
|
||||
},
|
||||
"css": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
},
|
||||
"resources": {
|
||||
"added": [],
|
||||
"edited": [],
|
||||
"removed": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107711,
|
||||
"name": "4.7.13 Beta 2",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"id": 107712,
|
||||
"name": "4.7.13",
|
||||
"steps": {
|
||||
"queries": false,
|
||||
"lang": false,
|
||||
"theme": false,
|
||||
"themeSettings": false,
|
||||
"javascript": false,
|
||||
"emailTemplates": false,
|
||||
"hooks": false,
|
||||
"acpSearchKeywords": false,
|
||||
"settings": false,
|
||||
"tasks": false,
|
||||
"modules": false,
|
||||
"widgets": false,
|
||||
"customOptions": false,
|
||||
"customRoutines": false
|
||||
},
|
||||
"forceMainUpgrader": false,
|
||||
"forceManualDownloadNoCiC": false,
|
||||
"forceManualDownloadCiC": false
|
||||
}
|
||||
@@ -23,7 +23,7 @@ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
*/
|
||||
class _Calendar extends \IPS\Node\Model implements \IPS\Node\Permissions
|
||||
{
|
||||
use \IPS\Content\ClubContainer;
|
||||
use \IPS\Content\ClubContainer, \IPS\Content\ViewUpdates;
|
||||
|
||||
/**
|
||||
* @brief [ActiveRecord] Multiton Store
|
||||
|
||||
@@ -122,7 +122,7 @@ class _Comment extends \IPS\Content\Comment implements \IPS\Content\EditHistory,
|
||||
$nextOccurance = $startDate;
|
||||
if ( $itemData['event_recurring'] )
|
||||
{
|
||||
$occurances = \IPS\calendar\Event::_findOccurances( $startDate, $endDate, $startDate->adjust( "-1 month" ), $startDate->adjust( "+2 years" ), \IPS\calendar\Icalendar\ICSParser::parseRrule( $itemData['event_recurring'] ) );
|
||||
$occurances = \IPS\calendar\Event::_findOccurances( $startDate, $endDate, $startDate->adjust( "-1 month" ), $startDate->adjust( "+2 years" ), \IPS\calendar\Icalendar\ICSParser::parseRrule( $itemData['event_recurring'] ), NULL, $itemData['event_all_day'] );
|
||||
foreach( $occurances as $occurrence )
|
||||
{
|
||||
if( $occurrence['startDate'] AND $occurrence['startDate']->mysqlDatetime( FALSE ) >= $startDate->mysqlDatetime( FALSE ) )
|
||||
|
||||
@@ -34,7 +34,7 @@ class _Event extends \IPS\Content\Item implements
|
||||
\IPS\Content\EditHistory,
|
||||
\IPS\Content\Anonymous
|
||||
{
|
||||
use \IPS\Content\Reactable, \IPS\Content\Reportable;
|
||||
use \IPS\Content\Reactable, \IPS\Content\Reportable, \IPS\Content\ViewUpdates, \IPS\Content\Statistics;
|
||||
|
||||
/**
|
||||
* @brief Application
|
||||
@@ -366,7 +366,7 @@ class _Event extends \IPS\Content\Item implements
|
||||
|
||||
/* Return the results we found after storing them */
|
||||
$timezone = ( !empty( $this->timezone ) and \in_array( \IPS\DateTime::getFixedTimezone( $this->timezone ), \DateTimeZone::listIdentifiers() ) ) ? new \DateTimeZone( $this->timezone ) : NULL;
|
||||
$this->parsedOccurrences = static::_findOccurances( $this->_start_date, $this->_end_date, $startDate, $endDate, $recurringData, $timezone );
|
||||
$this->parsedOccurrences = static::_findOccurances( $this->_start_date, $this->_end_date, $startDate, $endDate, $recurringData, $timezone, $this->all_day );
|
||||
|
||||
return $this->parsedOccurrences;
|
||||
}
|
||||
@@ -407,9 +407,10 @@ class _Event extends \IPS\Content\Item implements
|
||||
* @param \IPS\calendar\Date $endDate Date to end at
|
||||
* @param array $recurringData Reccurance data
|
||||
* @param \DateTimeZone $eventTimezone Event timezone
|
||||
* @param boolean $allDay All day event?
|
||||
* @return array
|
||||
*/
|
||||
public static function _findOccurances( $eventStart, $eventEnd, $startDate, $endDate, $recurringData, ?\DateTimeZone $eventTimezone=NULL )
|
||||
public static function _findOccurances( $eventStart, $eventEnd, $startDate, $endDate, $recurringData, ?\DateTimeZone $eventTimezone=NULL, bool $allDay=FALSE )
|
||||
{
|
||||
$keyword = NULL;
|
||||
$results = array();
|
||||
@@ -435,7 +436,14 @@ class _Event extends \IPS\Content\Item implements
|
||||
/* adjust repeat freq relative to event start date */
|
||||
$offset = 0;
|
||||
|
||||
if( $eventTimezone )
|
||||
/* Due to a change made in PR #2058, all day events are stored as UTC regardless of chosen TZ. This causes issues
|
||||
when adjusting the wday (added in d75481b) as timed events do store the TZ as per the user's choice.
|
||||
For now, we will only adjust the wday if the event is not all day.
|
||||
processForm() has also been changed to allow the correct TZ to be stored for all day events, so we have the
|
||||
correct data for a potenital future change in how all day events are processed.
|
||||
*/
|
||||
|
||||
if( ! $allDay and $eventTimezone )
|
||||
{
|
||||
$relativeDate = clone $eventStart;
|
||||
$relativeDate->setTimezone( $eventTimezone );
|
||||
@@ -450,7 +458,8 @@ class _Event extends \IPS\Content\Item implements
|
||||
{
|
||||
if ( $recurringData['repeat_freq_on_' . $day['ical'] ] == TRUE )
|
||||
{
|
||||
$_repeatDays[] = \IPS\calendar\Date::getDayNames()[$key-$offset]['english'];
|
||||
$lookup = ( $key - $offset ) < 0 ? ( $key + $offset ) : ( $key - $offset );
|
||||
$_repeatDays[] = \IPS\calendar\Date::getDayNames()[ $lookup ]['english'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1752,11 +1761,7 @@ class _Event extends \IPS\Content\Item implements
|
||||
}
|
||||
|
||||
/* Store time zone information */
|
||||
if ( isset( $values['event_dates']['all_day'] ) AND $values['event_dates']['all_day'] )
|
||||
{
|
||||
$this->timezone = 'UTC';
|
||||
}
|
||||
elseif ( isset( $values['event_dates']['event_timezone'] ) )
|
||||
if ( isset( $values['event_dates']['event_timezone'] ) )
|
||||
{
|
||||
$this->timezone = $values['event_dates']['event_timezone'];
|
||||
}
|
||||
@@ -2077,7 +2082,7 @@ class _Event extends \IPS\Content\Item implements
|
||||
|
||||
if( $location )
|
||||
{
|
||||
$where[] = array( '( event_location IS NOT NULL )' );
|
||||
$where[] = array( '( event_latitude IS NOT NULL AND event_longitude IS NOT NULL )' );
|
||||
}
|
||||
|
||||
/* Load member */
|
||||
@@ -2436,7 +2441,7 @@ class _Event extends \IPS\Content\Item implements
|
||||
$nextOccurance = $startDate;
|
||||
if ( $itemData['event_recurring'] )
|
||||
{
|
||||
$occurances = \IPS\calendar\Event::_findOccurances( $startDate, $endDate, $startDate->adjust( "-1 month" ), $startDate->adjust( "+2 years" ), \IPS\calendar\Icalendar\ICSParser::parseRrule( $itemData['event_recurring'] ) );
|
||||
$occurances = \IPS\calendar\Event::_findOccurances( $startDate, $endDate, $startDate->adjust( "-1 month" ), $startDate->adjust( "+2 years" ), \IPS\calendar\Icalendar\ICSParser::parseRrule( $itemData['event_recurring'] ), NULL, $itemData['event_all_day'] );
|
||||
foreach( $occurances as $occurrence )
|
||||
{
|
||||
if ( $occurrence['startDate'] AND $occurrence['startDate']->mysqlDatetime( FALSE ) >= $startDate->mysqlDatetime( FALSE ) )
|
||||
@@ -2748,4 +2753,16 @@ class _Event extends \IPS\Content\Item implements
|
||||
|
||||
return $this->happeningData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can the member copy the calendar event?
|
||||
*
|
||||
* @param \IPS\Member|NULL $member
|
||||
* @return bool
|
||||
*/
|
||||
public function canCopyEvent( \IPS\Member $member = NULL ): bool
|
||||
{
|
||||
$member = $member ?: \IPS\Member::loggedIn();
|
||||
return $this->author()->member_id == $member->member_id and $this->container()->can( 'add', $member );
|
||||
}
|
||||
}
|
||||
Loaded 100 of 954 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user