From 264eeb97e0e0f31cb85c13508e21d78f03fa778f Mon Sep 17 00:00:00 2001 From: Neo <321592+Neo-Desktop@users.noreply.github.com> Date: Fri, 19 Dec 2025 17:53:48 -0800 Subject: [PATCH] Version 5.0.0 beta 10 --- .../api/GraphQL/Mutations/CreateEntry.php | 2 +- .../blog/api/GraphQL/Mutations/ReplyEntry.php | 4 +- .../blog/api/GraphQL/Queries/Blog.php | 4 +- .../blog/api/GraphQL/Queries/Blogs.php | 4 +- .../blog/api/GraphQL/Queries/Entries.php | 4 +- .../blog/api/GraphQL/Queries/Entry.php | 4 +- applications/blog/data/javascript.xml | 4 +- applications/blog/data/lang.xml | 2 +- applications/blog/data/theme.xml | 8 +- applications/blog/data/versions.json | 22 +- applications/blog/setup/upg_107774/data.json | 23 + applications/blog/setup/upg_107775/data.json | 23 + applications/blog/setup/upg_107780/data.json | 23 + applications/blog/setup/upg_107780/theme.json | 21 + applications/blog/setup/upg_107781/data.json | 23 + applications/blog/setup/upg_107782/data.json | 23 + applications/blog/setup/upg_107783/data.json | 23 + applications/blog/setup/upg_107784/data.json | 23 + applications/blog/setup/upg_107785/data.json | 23 + applications/blog/setup/upg_107786/data.json | 23 + applications/blog/setup/upg_107787/data.json | 23 + applications/blog/setup/upg_5000040/data.json | 22 + .../blog/setup/upg_5000040/themeeditor.json | 14 + applications/blog/setup/upg_5000041/data.json | 22 + .../blog/setup/upg_5000041/theme.json | 19 + .../blog/setup/upg_5000041/themeeditor.json | 14 + applications/blog/sources/Blog/Blog.php | 17 +- .../blog/sources/Category/Category.php | 35 + applications/blog/sources/Entry/Entry.php | 3 +- .../api/GraphQL/Mutations/CreateEvent.php | 4 +- .../calendar/api/GraphQL/Queries/Calendar.php | 4 +- .../api/GraphQL/Queries/Calendars.php | 4 +- .../calendar/api/GraphQL/Queries/Event.php | 4 +- .../calendar/api/GraphQL/Queries/Events.php | 4 +- applications/calendar/data/javascript.xml | 22 +- applications/calendar/data/lang.xml | 2 +- applications/calendar/data/versions.json | 22 +- .../calendar/modules/front/calendar/view.php | 6 +- .../calendar/setup/upg_107774/data.json | 23 + .../calendar/setup/upg_107775/data.json | 23 + .../calendar/setup/upg_107780/data.json | 23 + .../calendar/setup/upg_107780/theme.json | 19 + .../calendar/setup/upg_107781/data.json | 23 + .../calendar/setup/upg_107782/data.json | 23 + .../calendar/setup/upg_107783/data.json | 23 + .../calendar/setup/upg_107784/data.json | 23 + .../calendar/setup/upg_107785/data.json | 23 + .../calendar/setup/upg_107786/data.json | 23 + .../calendar/setup/upg_107787/data.json | 23 + .../calendar/setup/upg_5000040/data.json | 22 + .../calendar/setup/upg_5000041/data.json | 22 + applications/calendar/sources/Event/Event.php | 41 +- applications/cms/data/javascript.xml | 38 +- applications/cms/data/lang.xml | 2 +- applications/cms/data/theme.xml | 47 +- applications/cms/data/versions.json | 22 +- .../extensions/core/SearchContent/Records.php | 2 +- .../cms/modules/admin/pages/templates.php | 1 + applications/cms/setup/upg_107774/data.json | 23 + applications/cms/setup/upg_107775/data.json | 23 + applications/cms/setup/upg_107780/data.json | 23 + .../cms/setup/upg_107780/javascript.json | 14 + applications/cms/setup/upg_107781/data.json | 23 + applications/cms/setup/upg_107782/data.json | 23 + applications/cms/setup/upg_107783/data.json | 23 + applications/cms/setup/upg_107784/data.json | 23 + applications/cms/setup/upg_107785/data.json | 23 + applications/cms/setup/upg_107786/data.json | 23 + applications/cms/setup/upg_107787/data.json | 23 + applications/cms/setup/upg_5000040/data.json | 22 + applications/cms/setup/upg_5000041/data.json | 22 + applications/cms/setup/upg_5000041/theme.json | 21 + applications/cms/sources/Blocks/Block.php | 5 + applications/convert/data/javascript.xml | 4 +- applications/convert/data/lang.xml | 2 +- applications/convert/data/versions.json | 22 +- .../core/Queue/RebuildGalleryImages.php | 2 +- .../convert/setup/upg_107774/data.json | 23 + .../convert/setup/upg_107775/data.json | 23 + .../convert/setup/upg_107780/data.json | 23 + .../convert/setup/upg_107781/data.json | 23 + .../convert/setup/upg_107782/data.json | 23 + .../convert/setup/upg_107783/data.json | 23 + .../convert/setup/upg_107784/data.json | 23 + .../convert/setup/upg_107785/data.json | 23 + .../convert/setup/upg_107786/data.json | 23 + .../convert/setup/upg_107787/data.json | 23 + .../convert/setup/upg_5000040/data.json | 22 + .../convert/setup/upg_5000041/data.json | 22 + .../GraphQL/Mutations/DeleteAttachment.php | 4 +- .../GraphQL/Mutations/UploadAttachment.php | 4 +- .../core/api/GraphQL/Queries/Members.php | 4 +- .../GraphQL/Queries/MessengerConversation.php | 4 +- .../Queries/MessengerConversations.php | 4 +- .../api/GraphQL/Queries/MessengerFolders.php | 4 +- .../core/api/GraphQL/Queries/Search.php | 25 +- .../GraphQL/Types/ContentSearchResultType.php | 8 +- .../core/api/GraphQL/Types/TagType.php | 4 +- applications/core/data/defaults/Widget.txt | 9 +- .../defaults/listeners/ClubListenerType.txt | 31 + applications/core/data/editorManifest.json | 2 +- applications/core/data/javascript.xml | 697 ++++++++++-------- applications/core/data/lang.xml | 4 +- applications/core/data/theme.xml | 359 ++++----- applications/core/data/versions.json | 22 +- .../extensions/core/Notifications/MyStuff.php | 13 +- .../extensions/core/ProfileSteps/Editor.php | 4 + .../extensions/core/ProfileSteps/Photo.php | 2 +- .../core/ProfileSteps/ProfileFields.php | 29 +- .../core/interface/themeeditor/themeEditor.js | 41 +- .../interface/tiptap/assets/main-Du6DOVZr.js | 207 ++++++ .../core/interface/tiptap/manifest.json | 2 +- .../core/modules/admin/developer/settings.php | 13 +- .../core/modules/admin/members/members.php | 41 +- .../core/modules/admin/staff/moderators.php | 5 +- .../core/modules/front/system/alerts.php | 2 +- .../core/modules/front/system/register.php | 6 +- .../core/modules/front/system/settings.php | 11 +- applications/core/setup/upg_107774/data.json | 23 + applications/core/setup/upg_107775/data.json | 23 + applications/core/setup/upg_107775/theme.json | 19 + .../setup/upg_107780/acpSearchKeywords.json | 9 + applications/core/setup/upg_107780/data.json | 23 + .../core/setup/upg_107780/emailTemplates.json | 10 + .../core/setup/upg_107780/javascript.json | 18 + applications/core/setup/upg_107780/lang.json | 101 +++ .../core/setup/upg_107780/queries.json | 62 ++ .../core/setup/upg_107780/settings.json | 14 + applications/core/setup/upg_107780/tasks.json | 9 + applications/core/setup/upg_107780/theme.json | 39 + .../core/setup/upg_107780/upgrade.php | 42 ++ applications/core/setup/upg_107781/data.json | 23 + .../core/setup/upg_107781/emailTemplates.json | 7 + .../core/setup/upg_107781/javascript.json | 14 + applications/core/setup/upg_107781/lang.json | 29 + .../core/setup/upg_107781/queries.json | 58 ++ applications/core/setup/upg_107781/theme.json | 20 + applications/core/setup/upg_107782/data.json | 23 + applications/core/setup/upg_107783/data.json | 23 + applications/core/setup/upg_107783/lang.json | 17 + .../core/setup/upg_107783/options.php | 21 + applications/core/setup/upg_107784/data.json | 23 + .../core/setup/upg_107784/javascript.json | 14 + applications/core/setup/upg_107785/data.json | 23 + applications/core/setup/upg_107786/data.json | 23 + applications/core/setup/upg_107786/theme.json | 19 + applications/core/setup/upg_107787/data.json | 23 + applications/core/setup/upg_5000022/data.json | 2 +- .../core/setup/upg_5000022/queries.json | 21 + .../core/setup/upg_5000022/upgrade.php | 1 - .../core/setup/upg_5000038/queries.json | 19 - applications/core/setup/upg_5000040/data.json | 22 + .../core/setup/upg_5000040/themeeditor.json | 116 +++ applications/core/setup/upg_5000041/data.json | 22 + .../core/setup/upg_5000041/javascript.json | 21 + applications/core/setup/upg_5000041/lang.json | 15 + .../core/setup/upg_5000041/theme.json | 51 ++ .../core/setup/upg_5000041/themeeditor.json | 116 +++ applications/core/sources/Alerts/Alert.php | 8 +- .../core/sources/Messenger/Conversation.php | 2 +- applications/downloads/data/javascript.xml | 18 +- applications/downloads/data/lang.xml | 2 +- applications/downloads/data/theme.xml | 20 +- applications/downloads/data/versions.json | 22 +- .../downloads/setup/upg_107774/data.json | 23 + .../downloads/setup/upg_107775/data.json | 23 + .../downloads/setup/upg_107780/data.json | 23 + .../downloads/setup/upg_107780/theme.json | 19 + .../downloads/setup/upg_107781/data.json | 23 + .../downloads/setup/upg_107782/data.json | 23 + .../downloads/setup/upg_107783/data.json | 23 + .../downloads/setup/upg_107784/data.json | 23 + .../downloads/setup/upg_107785/data.json | 23 + .../downloads/setup/upg_107786/data.json | 23 + .../downloads/setup/upg_107787/data.json | 23 + .../downloads/setup/upg_5000040/data.json | 22 + .../setup/upg_5000040/themeeditor.json | 14 + .../downloads/setup/upg_5000041/data.json | 22 + .../downloads/setup/upg_5000041/theme.json | 22 + .../setup/upg_5000041/themeeditor.json | 14 + .../downloads/sources/Category/Category.php | 23 + applications/downloads/sources/File/File.php | 2 - .../api/GraphQL/Mutations/CreateTopic.php | 4 +- .../api/GraphQL/Mutations/PostReaction.php | 4 +- .../api/GraphQL/Mutations/ReplyTopic.php | 4 +- .../api/GraphQL/Mutations/ReportPost.php | 4 +- .../GraphQL/Mutations/RevokePostReport.php | 4 +- .../forums/api/GraphQL/Queries/Forum.php | 4 +- .../forums/api/GraphQL/Queries/Forums.php | 4 +- .../forums/api/GraphQL/Queries/Post.php | 4 +- .../forums/api/GraphQL/Queries/Topic.php | 4 +- .../forums/api/GraphQL/Queries/Topics.php | 4 +- applications/forums/data/javascript.xml | 20 +- applications/forums/data/lang.xml | 2 +- applications/forums/data/theme.xml | 12 +- applications/forums/data/versions.json | 22 +- .../forums/setup/upg_107774/data.json | 23 + .../forums/setup/upg_107775/data.json | 23 + .../forums/setup/upg_107780/data.json | 23 + .../forums/setup/upg_107780/lang.json | 15 + .../forums/setup/upg_107780/theme.json | 22 + .../forums/setup/upg_107781/data.json | 23 + .../forums/setup/upg_107782/data.json | 23 + .../forums/setup/upg_107783/data.json | 23 + .../forums/setup/upg_107784/data.json | 23 + .../forums/setup/upg_107785/data.json | 23 + .../forums/setup/upg_107786/data.json | 23 + .../forums/setup/upg_107787/data.json | 23 + .../forums/setup/upg_5000040/data.json | 22 + .../forums/setup/upg_5000040/themeeditor.json | 17 + .../forums/setup/upg_5000041/data.json | 22 + .../forums/setup/upg_5000041/theme.json | 19 + .../forums/setup/upg_5000041/themeeditor.json | 17 + applications/forums/sources/Forum/Forum.php | 23 + .../gallery/api/GraphQL/Queries/Image.php | 4 +- applications/gallery/data/javascript.xml | 24 +- applications/gallery/data/lang.xml | 2 +- applications/gallery/data/theme.xml | 105 +-- applications/gallery/data/versions.json | 22 +- .../gallery/setup/upg_107774/data.json | 23 + .../gallery/setup/upg_107775/data.json | 23 + .../gallery/setup/upg_107780/data.json | 23 + .../gallery/setup/upg_107780/theme.json | 22 + .../gallery/setup/upg_107781/data.json | 23 + .../gallery/setup/upg_107782/data.json | 23 + .../gallery/setup/upg_107783/data.json | 23 + .../gallery/setup/upg_107784/data.json | 23 + .../gallery/setup/upg_107784/javascript.json | 14 + .../gallery/setup/upg_107785/data.json | 23 + .../gallery/setup/upg_107786/data.json | 23 + .../gallery/setup/upg_107787/data.json | 23 + .../gallery/setup/upg_5000040/data.json | 22 + .../gallery/setup/upg_5000041/data.json | 22 + .../gallery/setup/upg_5000041/theme.json | 21 + applications/gallery/sources/Album/Album.php | 8 +- applications/gallery/sources/Album/Item.php | 22 + .../gallery/sources/Category/Category.php | 23 + applications/nexus/data/javascript.xml | 38 +- applications/nexus/data/lang.xml | 2 +- applications/nexus/data/theme.xml | 11 +- applications/nexus/data/versions.json | 22 +- .../nexus/interface/licenses/index.php | 6 +- applications/nexus/setup/upg_107774/data.json | 23 + applications/nexus/setup/upg_107775/data.json | 23 + applications/nexus/setup/upg_107780/data.json | 23 + applications/nexus/setup/upg_107780/lang.json | 17 + applications/nexus/setup/upg_107781/data.json | 23 + applications/nexus/setup/upg_107781/lang.json | 14 + applications/nexus/setup/upg_107782/data.json | 23 + applications/nexus/setup/upg_107783/data.json | 23 + applications/nexus/setup/upg_107784/data.json | 23 + applications/nexus/setup/upg_107785/data.json | 23 + applications/nexus/setup/upg_107786/data.json | 23 + applications/nexus/setup/upg_107787/data.json | 23 + .../nexus/setup/upg_5000040/data.json | 22 + .../nexus/setup/upg_5000040/themeeditor.json | 14 + .../nexus/setup/upg_5000041/data.json | 22 + .../nexus/setup/upg_5000041/theme.json | 21 + .../nexus/setup/upg_5000041/themeeditor.json | 14 + .../nexus/sources/Gateway/Stripe/Stripe.php | 2 +- .../nexus/sources/Package/CustomField.php | 12 +- applications/nexus/sources/Package/Group.php | 24 + .../nexus/sources/Package/Package.php | 30 +- .../nexus/sources/Purchase/Purchase.php | 3 +- init.php | 4 +- static/css/cms_admin_templates_templates.css | 2 +- static/css/core_admin_core_core.css | 2 +- static/css/core_admin_system_login.css | 2 +- static/css/core_front_core.css | 2 +- static/css/core_front_styles_theme_editor.css | 2 +- static/css/core_global_2fa.css | 2 +- .../css/core_global_framework_framework.css | 2 +- static/css/nexus_front_nexus.css | 2 +- static/js/global/root_framework.js | 302 ++++---- static/js/global/root_front.js | 18 +- static/templates/blog_front_view.php | 13 +- static/templates/cms_admin_templates.php | 66 +- static/templates/core_admin_customization.php | 6 +- static/templates/core_admin_global.php | 22 +- static/templates/core_admin_system.php | 25 +- static/templates/core_front_alerts.php | 6 +- static/templates/core_front_forms.php | 12 +- static/templates/core_front_global.php | 144 +++- static/templates/core_front_modcp.php | 4 +- static/templates/core_front_system.php | 20 +- static/templates/core_front_themeeditor.php | 31 +- static/templates/core_global_login.php | 170 ++--- static/templates/downloads_front_view.php | 45 +- static/templates/forums_front_topics.php | 43 +- static/templates/gallery_front_browse.php | 105 +-- static/templates/gallery_front_global.php | 637 ++++++++-------- static/templates/nexus_admin_purchases.php | 4 +- system/Api/GraphQL/AppQueries.php | 6 +- system/Api/GraphQL/Types/QueryType.php | 2 +- system/Application/Application.php | 11 +- system/Content/Comment.php | 2 +- system/Content/Content.php | 2 - system/Events/ListenerType.php | 4 +- .../Events/ListenerType/ClubListenerType.php | 36 + .../ListenerType/ContentListenerType.php | 1 - .../Events/ListenerType/NodeListenerType.php | 1 - system/Extensions/GroupFormAbstract.php | 23 + system/Extensions/ProfileStepsAbstract.php | 11 + .../GeoLocation/Api/GraphQL/TypeRegistry.php | 2 +- system/Helpers/CoverPhoto/Controller.php | 27 +- system/Helpers/Form/Node.php | 24 +- system/Login/Handler/ButtonHandler.php | 5 +- system/Login/Handler/OAuth2/Apple.php | 4 +- system/Login/Handler/OAuth2/Custom.php | 4 +- system/Login/Handler/OAuth2/Facebook.php | 5 +- system/Login/Handler/OAuth2/Google.php | 5 +- system/Login/Handler/OAuth2/Invision.php | 4 +- system/Login/Handler/OAuth2/LinkedIn.php | 5 +- system/Login/Handler/OAuth2/Microsoft.php | 5 +- system/Login/Handler/OAuth2/Wordpress.php | 4 +- system/MFA/Authy/Handler.php | 7 +- system/Member/Club/Club.php | 15 +- system/Member/Group.php | 12 +- system/Member/Member.php | 9 +- system/Member/ProfileStep.php | 17 +- system/Node/Model.php | 2 - system/Patterns/ActiveRecord.php | 13 +- system/Theme/Editor/Category.php | 13 +- system/Theme/Editor/Setting.php | 27 +- system/Widget/Widget.php | 12 +- 325 files changed, 6442 insertions(+), 1849 deletions(-) create mode 100644 applications/blog/setup/upg_107774/data.json create mode 100644 applications/blog/setup/upg_107775/data.json create mode 100644 applications/blog/setup/upg_107780/data.json create mode 100644 applications/blog/setup/upg_107780/theme.json create mode 100644 applications/blog/setup/upg_107781/data.json create mode 100644 applications/blog/setup/upg_107782/data.json create mode 100644 applications/blog/setup/upg_107783/data.json create mode 100644 applications/blog/setup/upg_107784/data.json create mode 100644 applications/blog/setup/upg_107785/data.json create mode 100644 applications/blog/setup/upg_107786/data.json create mode 100644 applications/blog/setup/upg_107787/data.json create mode 100644 applications/blog/setup/upg_5000040/data.json create mode 100644 applications/blog/setup/upg_5000040/themeeditor.json create mode 100644 applications/blog/setup/upg_5000041/data.json create mode 100644 applications/blog/setup/upg_5000041/theme.json create mode 100644 applications/blog/setup/upg_5000041/themeeditor.json create mode 100644 applications/calendar/setup/upg_107774/data.json create mode 100644 applications/calendar/setup/upg_107775/data.json create mode 100644 applications/calendar/setup/upg_107780/data.json create mode 100644 applications/calendar/setup/upg_107780/theme.json create mode 100644 applications/calendar/setup/upg_107781/data.json create mode 100644 applications/calendar/setup/upg_107782/data.json create mode 100644 applications/calendar/setup/upg_107783/data.json create mode 100644 applications/calendar/setup/upg_107784/data.json create mode 100644 applications/calendar/setup/upg_107785/data.json create mode 100644 applications/calendar/setup/upg_107786/data.json create mode 100644 applications/calendar/setup/upg_107787/data.json create mode 100644 applications/calendar/setup/upg_5000040/data.json create mode 100644 applications/calendar/setup/upg_5000041/data.json create mode 100644 applications/cms/setup/upg_107774/data.json create mode 100644 applications/cms/setup/upg_107775/data.json create mode 100644 applications/cms/setup/upg_107780/data.json create mode 100644 applications/cms/setup/upg_107780/javascript.json create mode 100644 applications/cms/setup/upg_107781/data.json create mode 100644 applications/cms/setup/upg_107782/data.json create mode 100644 applications/cms/setup/upg_107783/data.json create mode 100644 applications/cms/setup/upg_107784/data.json create mode 100644 applications/cms/setup/upg_107785/data.json create mode 100644 applications/cms/setup/upg_107786/data.json create mode 100644 applications/cms/setup/upg_107787/data.json create mode 100644 applications/cms/setup/upg_5000040/data.json create mode 100644 applications/cms/setup/upg_5000041/data.json create mode 100644 applications/cms/setup/upg_5000041/theme.json create mode 100644 applications/convert/setup/upg_107774/data.json create mode 100644 applications/convert/setup/upg_107775/data.json create mode 100644 applications/convert/setup/upg_107780/data.json create mode 100644 applications/convert/setup/upg_107781/data.json create mode 100644 applications/convert/setup/upg_107782/data.json create mode 100644 applications/convert/setup/upg_107783/data.json create mode 100644 applications/convert/setup/upg_107784/data.json create mode 100644 applications/convert/setup/upg_107785/data.json create mode 100644 applications/convert/setup/upg_107786/data.json create mode 100644 applications/convert/setup/upg_107787/data.json create mode 100644 applications/convert/setup/upg_5000040/data.json create mode 100644 applications/convert/setup/upg_5000041/data.json create mode 100644 applications/core/data/defaults/listeners/ClubListenerType.txt create mode 100644 applications/core/interface/tiptap/assets/main-Du6DOVZr.js create mode 100644 applications/core/setup/upg_107774/data.json create mode 100644 applications/core/setup/upg_107775/data.json create mode 100644 applications/core/setup/upg_107775/theme.json create mode 100644 applications/core/setup/upg_107780/acpSearchKeywords.json create mode 100644 applications/core/setup/upg_107780/data.json create mode 100644 applications/core/setup/upg_107780/emailTemplates.json create mode 100644 applications/core/setup/upg_107780/javascript.json create mode 100644 applications/core/setup/upg_107780/lang.json create mode 100644 applications/core/setup/upg_107780/queries.json create mode 100644 applications/core/setup/upg_107780/settings.json create mode 100644 applications/core/setup/upg_107780/tasks.json create mode 100644 applications/core/setup/upg_107780/theme.json create mode 100644 applications/core/setup/upg_107780/upgrade.php create mode 100644 applications/core/setup/upg_107781/data.json create mode 100644 applications/core/setup/upg_107781/emailTemplates.json create mode 100644 applications/core/setup/upg_107781/javascript.json create mode 100644 applications/core/setup/upg_107781/lang.json create mode 100644 applications/core/setup/upg_107781/queries.json create mode 100644 applications/core/setup/upg_107781/theme.json create mode 100644 applications/core/setup/upg_107782/data.json create mode 100644 applications/core/setup/upg_107783/data.json create mode 100644 applications/core/setup/upg_107783/lang.json create mode 100644 applications/core/setup/upg_107783/options.php create mode 100644 applications/core/setup/upg_107784/data.json create mode 100644 applications/core/setup/upg_107784/javascript.json create mode 100644 applications/core/setup/upg_107785/data.json create mode 100644 applications/core/setup/upg_107786/data.json create mode 100644 applications/core/setup/upg_107786/theme.json create mode 100644 applications/core/setup/upg_107787/data.json create mode 100644 applications/core/setup/upg_5000022/queries.json create mode 100644 applications/core/setup/upg_5000040/data.json create mode 100644 applications/core/setup/upg_5000040/themeeditor.json create mode 100644 applications/core/setup/upg_5000041/data.json create mode 100644 applications/core/setup/upg_5000041/javascript.json create mode 100644 applications/core/setup/upg_5000041/lang.json create mode 100644 applications/core/setup/upg_5000041/theme.json create mode 100644 applications/core/setup/upg_5000041/themeeditor.json create mode 100644 applications/downloads/setup/upg_107774/data.json create mode 100644 applications/downloads/setup/upg_107775/data.json create mode 100644 applications/downloads/setup/upg_107780/data.json create mode 100644 applications/downloads/setup/upg_107780/theme.json create mode 100644 applications/downloads/setup/upg_107781/data.json create mode 100644 applications/downloads/setup/upg_107782/data.json create mode 100644 applications/downloads/setup/upg_107783/data.json create mode 100644 applications/downloads/setup/upg_107784/data.json create mode 100644 applications/downloads/setup/upg_107785/data.json create mode 100644 applications/downloads/setup/upg_107786/data.json create mode 100644 applications/downloads/setup/upg_107787/data.json create mode 100644 applications/downloads/setup/upg_5000040/data.json create mode 100644 applications/downloads/setup/upg_5000040/themeeditor.json create mode 100644 applications/downloads/setup/upg_5000041/data.json create mode 100644 applications/downloads/setup/upg_5000041/theme.json create mode 100644 applications/downloads/setup/upg_5000041/themeeditor.json create mode 100644 applications/forums/setup/upg_107774/data.json create mode 100644 applications/forums/setup/upg_107775/data.json create mode 100644 applications/forums/setup/upg_107780/data.json create mode 100644 applications/forums/setup/upg_107780/lang.json create mode 100644 applications/forums/setup/upg_107780/theme.json create mode 100644 applications/forums/setup/upg_107781/data.json create mode 100644 applications/forums/setup/upg_107782/data.json create mode 100644 applications/forums/setup/upg_107783/data.json create mode 100644 applications/forums/setup/upg_107784/data.json create mode 100644 applications/forums/setup/upg_107785/data.json create mode 100644 applications/forums/setup/upg_107786/data.json create mode 100644 applications/forums/setup/upg_107787/data.json create mode 100644 applications/forums/setup/upg_5000040/data.json create mode 100644 applications/forums/setup/upg_5000040/themeeditor.json create mode 100644 applications/forums/setup/upg_5000041/data.json create mode 100644 applications/forums/setup/upg_5000041/theme.json create mode 100644 applications/forums/setup/upg_5000041/themeeditor.json create mode 100644 applications/gallery/setup/upg_107774/data.json create mode 100644 applications/gallery/setup/upg_107775/data.json create mode 100644 applications/gallery/setup/upg_107780/data.json create mode 100644 applications/gallery/setup/upg_107780/theme.json create mode 100644 applications/gallery/setup/upg_107781/data.json create mode 100644 applications/gallery/setup/upg_107782/data.json create mode 100644 applications/gallery/setup/upg_107783/data.json create mode 100644 applications/gallery/setup/upg_107784/data.json create mode 100644 applications/gallery/setup/upg_107784/javascript.json create mode 100644 applications/gallery/setup/upg_107785/data.json create mode 100644 applications/gallery/setup/upg_107786/data.json create mode 100644 applications/gallery/setup/upg_107787/data.json create mode 100644 applications/gallery/setup/upg_5000040/data.json create mode 100644 applications/gallery/setup/upg_5000041/data.json create mode 100644 applications/gallery/setup/upg_5000041/theme.json create mode 100644 applications/nexus/setup/upg_107774/data.json create mode 100644 applications/nexus/setup/upg_107775/data.json create mode 100644 applications/nexus/setup/upg_107780/data.json create mode 100644 applications/nexus/setup/upg_107780/lang.json create mode 100644 applications/nexus/setup/upg_107781/data.json create mode 100644 applications/nexus/setup/upg_107781/lang.json create mode 100644 applications/nexus/setup/upg_107782/data.json create mode 100644 applications/nexus/setup/upg_107783/data.json create mode 100644 applications/nexus/setup/upg_107784/data.json create mode 100644 applications/nexus/setup/upg_107785/data.json create mode 100644 applications/nexus/setup/upg_107786/data.json create mode 100644 applications/nexus/setup/upg_107787/data.json create mode 100644 applications/nexus/setup/upg_5000040/data.json create mode 100644 applications/nexus/setup/upg_5000040/themeeditor.json create mode 100644 applications/nexus/setup/upg_5000041/data.json create mode 100644 applications/nexus/setup/upg_5000041/theme.json create mode 100644 applications/nexus/setup/upg_5000041/themeeditor.json create mode 100644 system/Events/ListenerType/ClubListenerType.php diff --git a/applications/blog/api/GraphQL/Mutations/CreateEntry.php b/applications/blog/api/GraphQL/Mutations/CreateEntry.php index a3b6bba0..b1c2f46e 100644 --- a/applications/blog/api/GraphQL/Mutations/CreateEntry.php +++ b/applications/blog/api/GraphQL/Mutations/CreateEntry.php @@ -69,7 +69,7 @@ class CreateEntry extends ItemMutator * @param mixed $info * @return Entry */ - public function resolve( mixed $val, array $args, array $context, mixed $info): Entry + public function resolve( mixed $val, array $args, array $context, mixed $info ): Entry { /* Get blog */ try diff --git a/applications/blog/api/GraphQL/Mutations/ReplyEntry.php b/applications/blog/api/GraphQL/Mutations/ReplyEntry.php index 78480f52..4351be04 100644 --- a/applications/blog/api/GraphQL/Mutations/ReplyEntry.php +++ b/applications/blog/api/GraphQL/Mutations/ReplyEntry.php @@ -69,10 +69,10 @@ class ReplyEntry extends CommentMutator * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return Comment */ - public function resolve( mixed $val, array $args, array $context, array $info): Comment + public function resolve( mixed $val, array $args, array $context, mixed $info): Comment { /* Get topic */ try diff --git a/applications/blog/api/GraphQL/Queries/Blog.php b/applications/blog/api/GraphQL/Queries/Blog.php index f4366642..270e03a1 100644 --- a/applications/blog/api/GraphQL/Queries/Blog.php +++ b/applications/blog/api/GraphQL/Queries/Blog.php @@ -58,10 +58,10 @@ class Blog * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return BlogObject */ - public function resolve( mixed $val, array $args, array $context, array $info): BlogObject + public function resolve( mixed $val, array $args, array $context, mixed $info ): BlogObject { $blog = BlogObject::load( $args[ 'id'] ); diff --git a/applications/blog/api/GraphQL/Queries/Blogs.php b/applications/blog/api/GraphQL/Queries/Blogs.php index b9001810..d2e5a115 100644 --- a/applications/blog/api/GraphQL/Queries/Blogs.php +++ b/applications/blog/api/GraphQL/Queries/Blogs.php @@ -56,10 +56,10 @@ class Blogs * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return array */ - public function resolve( mixed $val, array $args, array $context, array $info): array + public function resolve( mixed $val, array $args, array $context, mixed $info ): array { Blog::loadIntoMemory('view', $context['member']); return Blog::roots(); diff --git a/applications/blog/api/GraphQL/Queries/Entries.php b/applications/blog/api/GraphQL/Queries/Entries.php index fb16e6e3..a6e04d26 100644 --- a/applications/blog/api/GraphQL/Queries/Entries.php +++ b/applications/blog/api/GraphQL/Queries/Entries.php @@ -92,10 +92,10 @@ class Entries * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return ActiveRecordIterator */ - public function resolve( mixed $val, array $args, array $context, array $info): ActiveRecordIterator + public function resolve( mixed $val, array $args, array $context, mixed $info ): ActiveRecordIterator { Blog::loadIntoMemory('view', Member::loggedIn() ); diff --git a/applications/blog/api/GraphQL/Queries/Entry.php b/applications/blog/api/GraphQL/Queries/Entry.php index 2153d933..a850cf5d 100644 --- a/applications/blog/api/GraphQL/Queries/Entry.php +++ b/applications/blog/api/GraphQL/Queries/Entry.php @@ -58,10 +58,10 @@ class Entry * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return EntryClass */ - public function resolve( mixed $val, array $args, array $context, array $info): EntryClass + public function resolve( mixed $val, array $args, array $context, mixed $info ): EntryClass { try { diff --git a/applications/blog/data/javascript.xml b/applications/blog/data/javascript.xml index 7e640f11..9aae9e1d 100644 --- a/applications/blog/data/javascript.xml +++ b/applications/blog/data/javascript.xml @@ -1,6 +1,6 @@ - - \ "); diff --git a/applications/blog/data/lang.xml b/applications/blog/data/lang.xml index 02f7f9cd..a1f97dc4 100644 --- a/applications/blog/data/lang.xml +++ b/applications/blog/data/lang.xml @@ -1,6 +1,6 @@ - + Blogs Blogs a comment on a blog entry diff --git a/applications/blog/data/theme.xml b/applications/blog/data/theme.xml index 9ac84a3a..f51710c4 100644 --- a/applications/blog/data/theme.xml +++ b/applications/blog/data/theme.xml @@ -1205,12 +1205,8 @@
- {{if $entry->cover_photo}} -
-
- -
-
+ {{if $entry->coverPhoto()}} + {$entry->coverPhoto()|raw} {{endif}}
diff --git a/applications/blog/data/versions.json b/applications/blog/data/versions.json index b5d021c6..6e67c960 100644 --- a/applications/blog/data/versions.json +++ b/applications/blog/data/versions.json @@ -250,6 +250,24 @@ "107751": "4.7.16", "107760": "4.7.17 Beta 1", "107761": "4.7.17 Beta 2", + "107762": "4.7.17 Beta 3", + "107763": "4.7.17", + "107764": "4.7.17", + "107765": "4.7.17", + "107770": "4.7.18 Beta 1", + "107771": "4.7.18 Beta 2", + "107772": "4.7.18 Beta 3", + "107773": "4.7.18", + "107774": "4.7.18", + "107775": "4.7.18", + "107780": "4.7.19 Beta 1", + "107781": "4.7.19 Beta 2", + "107782": "4.7.19 Beta 3", + "107783": "4.7.19 Beta 4", + "107784": "4.7.19", + "107785": "4.7.19", + "107786": "4.7.19", + "107787": "4.7.19", "500001": "5.0.0 Alpha 1", "500002": "5.0.0 Alpha 2", "5000003": "5.0.0 Alpha 3", @@ -288,5 +306,7 @@ "5000036": "5.0.0 Beta 8", "5000037": "5.0.0 Beta 8", "5000038": "5.0.0 Beta 9", - "5000039": "5.0.0 Beta 9.1" + "5000039": "5.0.0 Beta 9.1", + "5000040": "5.0.0 Beta 9.1", + "5000041": "5.0.0 Beta 10" } \ No newline at end of file diff --git a/applications/blog/setup/upg_107774/data.json b/applications/blog/setup/upg_107774/data.json new file mode 100644 index 00000000..51b2b34e --- /dev/null +++ b/applications/blog/setup/upg_107774/data.json @@ -0,0 +1,23 @@ +{ + "id": 107774, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107775/data.json b/applications/blog/setup/upg_107775/data.json new file mode 100644 index 00000000..4c16685c --- /dev/null +++ b/applications/blog/setup/upg_107775/data.json @@ -0,0 +1,23 @@ +{ + "id": 107775, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107780/data.json b/applications/blog/setup/upg_107780/data.json new file mode 100644 index 00000000..0f215599 --- /dev/null +++ b/applications/blog/setup/upg_107780/data.json @@ -0,0 +1,23 @@ +{ + "id": 107780, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107780/theme.json b/applications/blog/setup/upg_107780/theme.json new file mode 100644 index 00000000..06ef13f8 --- /dev/null +++ b/applications/blog/setup/upg_107780/theme.json @@ -0,0 +1,21 @@ +{ + "html": { + "added": [], + "edited": [ + "front\/browse\/rows", + "front\/view\/comments", + "front\/widgets\/blogCommentFeed" + ], + "removed": [] + }, + "css": { + "added": [], + "edited": [], + "removed": [] + }, + "resources": { + "added": [], + "edited": [], + "removed": [] + } +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107781/data.json b/applications/blog/setup/upg_107781/data.json new file mode 100644 index 00000000..19d56ab1 --- /dev/null +++ b/applications/blog/setup/upg_107781/data.json @@ -0,0 +1,23 @@ +{ + "id": 107781, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107782/data.json b/applications/blog/setup/upg_107782/data.json new file mode 100644 index 00000000..daa648ab --- /dev/null +++ b/applications/blog/setup/upg_107782/data.json @@ -0,0 +1,23 @@ +{ + "id": 107782, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107783/data.json b/applications/blog/setup/upg_107783/data.json new file mode 100644 index 00000000..3a3219c3 --- /dev/null +++ b/applications/blog/setup/upg_107783/data.json @@ -0,0 +1,23 @@ +{ + "id": 107783, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107784/data.json b/applications/blog/setup/upg_107784/data.json new file mode 100644 index 00000000..d380afa7 --- /dev/null +++ b/applications/blog/setup/upg_107784/data.json @@ -0,0 +1,23 @@ +{ + "id": 107784, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107785/data.json b/applications/blog/setup/upg_107785/data.json new file mode 100644 index 00000000..95c681e9 --- /dev/null +++ b/applications/blog/setup/upg_107785/data.json @@ -0,0 +1,23 @@ +{ + "id": 107785, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107786/data.json b/applications/blog/setup/upg_107786/data.json new file mode 100644 index 00000000..5bd423b5 --- /dev/null +++ b/applications/blog/setup/upg_107786/data.json @@ -0,0 +1,23 @@ +{ + "id": 107786, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_107787/data.json b/applications/blog/setup/upg_107787/data.json new file mode 100644 index 00000000..de5492c9 --- /dev/null +++ b/applications/blog/setup/upg_107787/data.json @@ -0,0 +1,23 @@ +{ + "id": 107787, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/blog/setup/upg_5000040/data.json b/applications/blog/setup/upg_5000040/data.json new file mode 100644 index 00000000..09af0606 --- /dev/null +++ b/applications/blog/setup/upg_5000040/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000040, + "name": "5.0.0 Beta 9.1", + "steps": { + "queries": false, + "lang": false, + "theme": false, + "themeeditor": true, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/blog/setup/upg_5000040/themeeditor.json b/applications/blog/setup/upg_5000040/themeeditor.json new file mode 100644 index 00000000..6493d217 --- /dev/null +++ b/applications/blog/setup/upg_5000040/themeeditor.json @@ -0,0 +1,14 @@ +{ + "categories": { + "added": [], + "edited": [], + "removed": [] + }, + "settings": { + "added": [], + "edited": [ + "layout_blog_view" + ], + "removed": [] + } +} \ No newline at end of file diff --git a/applications/blog/setup/upg_5000041/data.json b/applications/blog/setup/upg_5000041/data.json new file mode 100644 index 00000000..34aa0a35 --- /dev/null +++ b/applications/blog/setup/upg_5000041/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000041, + "name": "5.0.0 Beta 10", + "steps": { + "queries": false, + "lang": false, + "theme": true, + "themeeditor": true, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/blog/setup/upg_5000041/theme.json b/applications/blog/setup/upg_5000041/theme.json new file mode 100644 index 00000000..861865c1 --- /dev/null +++ b/applications/blog/setup/upg_5000041/theme.json @@ -0,0 +1,19 @@ +{ + "html": { + "added": [], + "edited": [ + "front\/view\/entry" + ], + "removed": [] + }, + "css": { + "added": [], + "edited": [], + "removed": [] + }, + "resources": { + "added": [], + "edited": [], + "removed": [] + } +} \ No newline at end of file diff --git a/applications/blog/setup/upg_5000041/themeeditor.json b/applications/blog/setup/upg_5000041/themeeditor.json new file mode 100644 index 00000000..6493d217 --- /dev/null +++ b/applications/blog/setup/upg_5000041/themeeditor.json @@ -0,0 +1,14 @@ +{ + "categories": { + "added": [], + "edited": [], + "removed": [] + }, + "settings": { + "added": [], + "edited": [ + "layout_blog_view" + ], + "removed": [] + } +} \ No newline at end of file diff --git a/applications/blog/sources/Blog/Blog.php b/applications/blog/sources/Blog/Blog.php index 2aea1a4d..bf184085 100644 --- a/applications/blog/sources/Blog/Blog.php +++ b/applications/blog/sources/Blog/Blog.php @@ -606,13 +606,6 @@ class Blog extends Model implements Embeddable } $form->add( new YesNo( 'allow_anonymous_comments', $this->id ? $this->allow_anonymous : FALSE, FALSE, array() ) ); - - /* Categories */ - if ( $public and $this->id ) - { - $form->addTab( 'blog_entry_categories' ); - $form->addHtml( Theme::i()->getTemplate( 'view', 'blog', 'front' )->manageCategories( $this ) ); - } parent::form( $form ); } @@ -1544,12 +1537,10 @@ class Blog extends Model implements Embeddable $editLink->opensDialog( 'edit_blog' ); $links[] = $editLink; } - else - { - $categoryLink = new ContentMenuLink( $this->url()->setQueryString( 'do', 'manageCategories' ), 'blog_manage_entry_categories' ); - $categoryLink->opensDialog( 'blog_manage_entry_categories' ); - $links[] = $categoryLink; - } + + $categoryLink = new ContentMenuLink( $this->url()->setQueryString( 'do', 'manageCategories' ), 'blog_manage_entry_categories' ); + $categoryLink->opensDialog( 'blog_manage_entry_categories' ); + $links[] = $categoryLink; if( Settings::i()->blog_allow_rssimport ) { diff --git a/applications/blog/sources/Category/Category.php b/applications/blog/sources/Category/Category.php index 5a5593e7..4aa72a20 100644 --- a/applications/blog/sources/Category/Category.php +++ b/applications/blog/sources/Category/Category.php @@ -137,6 +137,29 @@ class Category extends Model */ public static bool $canBeExtended = true; + /** + * [ActiveRecord] Duplicate + * + * @return void + */ + public function __clone() + { + $oldId = $this->_id; + + parent::__clone(); + + $attachmentsMap = []; + foreach( Db::i()->select( '*', 'core_attachments_map', [ 'location_key=? and id1=? and id3=?', 'blog_Categories', $oldId, 'bcategory' ] ) as $attachment ) + { + $attachment['id1'] = $this->id; + $attachmentsMap[] = $attachment; + } + if( count( $attachmentsMap ) ) + { + Db::i()->insert( 'core_attachments_map', $attachmentsMap ); + } + } + /** * [Node] Add/Edit Form * @@ -375,4 +398,16 @@ class Category extends Model return new ActiveRecordIterator( Db::i()->select( '*', $contentItemClass::$databaseTable, $where, $contentItemClass::$databasePrefix . $contentItemClass::$databaseColumnId, $limit )->join( 'blog_blogs', "blog_entries.entry_blog_id=blog_blogs.blog_id" ), $contentItemClass ); } } + + /** + * Delete Record + * + * @return void + */ + public function delete(): void + { + parent::delete(); + + File::unclaimAttachments( 'blog_Categories', $this->id, null, 'bcategory' ); + } } diff --git a/applications/blog/sources/Entry/Entry.php b/applications/blog/sources/Entry/Entry.php index 22d9d45f..897e8518 100644 --- a/applications/blog/sources/Entry/Entry.php +++ b/applications/blog/sources/Entry/Entry.php @@ -158,7 +158,7 @@ class Entry extends Item implements 'ip_address' => 'ip_address', 'locked' => 'locked', 'cover_photo' => 'cover_photo', - 'cover_photo_offset' => 'cover_offset', + 'cover_photo_offset' => 'cover_photo_offset', 'is_future_entry' => 'is_future_entry', 'future_date' => 'publish_date', 'status' => 'status', @@ -1048,7 +1048,6 @@ class Entry extends Item implements $this->category_id = NULL; $this->save(); } - public static string $itemMenuKey = 'entry_actions'; public static string $itemMenuCss = ''; diff --git a/applications/calendar/api/GraphQL/Mutations/CreateEvent.php b/applications/calendar/api/GraphQL/Mutations/CreateEvent.php index 7e041342..090cfc79 100644 --- a/applications/calendar/api/GraphQL/Mutations/CreateEvent.php +++ b/applications/calendar/api/GraphQL/Mutations/CreateEvent.php @@ -67,10 +67,10 @@ class CreateEvent extends ItemMutator * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return Event */ - public function resolve( mixed $val, array $args, array $context, array $info): Item + public function resolve( mixed $val, array $args, array $context, mixed $info ): Item { /* Get calendar */ try diff --git a/applications/calendar/api/GraphQL/Queries/Calendar.php b/applications/calendar/api/GraphQL/Queries/Calendar.php index 2ff6435a..1e2e9225 100644 --- a/applications/calendar/api/GraphQL/Queries/Calendar.php +++ b/applications/calendar/api/GraphQL/Queries/Calendar.php @@ -57,10 +57,10 @@ class Calendar * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return CalendarClass */ - public function resolve( mixed $val, array$args, array $context, array $info): CalendarClass + public function resolve( mixed $val, array$args, array $context, mixed $info ): CalendarClass { $calendar = CalendarClass::load( $args['id'] ); diff --git a/applications/calendar/api/GraphQL/Queries/Calendars.php b/applications/calendar/api/GraphQL/Queries/Calendars.php index 0b52732f..5e47ddc1 100644 --- a/applications/calendar/api/GraphQL/Queries/Calendars.php +++ b/applications/calendar/api/GraphQL/Queries/Calendars.php @@ -56,10 +56,10 @@ class Calendars * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return array */ - public function resolve( mixed $val, array $args, array $context, array $info): array + public function resolve( mixed $val, array $args, array $context, mixed $info ): array { Calendar::loadIntoMemory('view', $context['member']); return Calendar::roots(); diff --git a/applications/calendar/api/GraphQL/Queries/Event.php b/applications/calendar/api/GraphQL/Queries/Event.php index 597e779c..68c9b04c 100644 --- a/applications/calendar/api/GraphQL/Queries/Event.php +++ b/applications/calendar/api/GraphQL/Queries/Event.php @@ -58,10 +58,10 @@ class Event * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return EventClass */ - public function resolve( mixed $val, array $args, array $context, array $info): EventClass + public function resolve( mixed $val, array $args, array $context, mixed $info ): EventClass { try { diff --git a/applications/calendar/api/GraphQL/Queries/Events.php b/applications/calendar/api/GraphQL/Queries/Events.php index 3574382b..067812d5 100644 --- a/applications/calendar/api/GraphQL/Queries/Events.php +++ b/applications/calendar/api/GraphQL/Queries/Events.php @@ -92,10 +92,10 @@ class Events * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return ActiveRecordIterator */ - public function resolve( mixed $val, array $args, array $context, array $info ): ActiveRecordIterator + public function resolve( mixed $val, array $args, array $context, mixed $info ): ActiveRecordIterator { $where = []; Calendar::loadIntoMemory( 'view', Member::loggedIn() ); diff --git a/applications/calendar/data/javascript.xml b/applications/calendar/data/javascript.xml index 53ac98a1..d0f1e82d 100644 --- a/applications/calendar/data/javascript.xml +++ b/applications/calendar/data/javascript.xml @@ -1,6 +1,6 @@ - - - - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -2113,7 +2113,7 @@ var PER_PAGE = 16; }); }(jQuery, _)); -
\ ");]]> -
diff --git a/applications/calendar/data/lang.xml b/applications/calendar/data/lang.xml index f29df6de..efc46029 100644 --- a/applications/calendar/data/lang.xml +++ b/applications/calendar/data/lang.xml @@ -1,6 +1,6 @@ - + Events Events a comment on an event diff --git a/applications/calendar/data/versions.json b/applications/calendar/data/versions.json index b5d021c6..6e67c960 100644 --- a/applications/calendar/data/versions.json +++ b/applications/calendar/data/versions.json @@ -250,6 +250,24 @@ "107751": "4.7.16", "107760": "4.7.17 Beta 1", "107761": "4.7.17 Beta 2", + "107762": "4.7.17 Beta 3", + "107763": "4.7.17", + "107764": "4.7.17", + "107765": "4.7.17", + "107770": "4.7.18 Beta 1", + "107771": "4.7.18 Beta 2", + "107772": "4.7.18 Beta 3", + "107773": "4.7.18", + "107774": "4.7.18", + "107775": "4.7.18", + "107780": "4.7.19 Beta 1", + "107781": "4.7.19 Beta 2", + "107782": "4.7.19 Beta 3", + "107783": "4.7.19 Beta 4", + "107784": "4.7.19", + "107785": "4.7.19", + "107786": "4.7.19", + "107787": "4.7.19", "500001": "5.0.0 Alpha 1", "500002": "5.0.0 Alpha 2", "5000003": "5.0.0 Alpha 3", @@ -288,5 +306,7 @@ "5000036": "5.0.0 Beta 8", "5000037": "5.0.0 Beta 8", "5000038": "5.0.0 Beta 9", - "5000039": "5.0.0 Beta 9.1" + "5000039": "5.0.0 Beta 9.1", + "5000040": "5.0.0 Beta 9.1", + "5000041": "5.0.0 Beta 10" } \ No newline at end of file diff --git a/applications/calendar/modules/front/calendar/view.php b/applications/calendar/modules/front/calendar/view.php index 2cbd5e8b..af04e1c8 100644 --- a/applications/calendar/modules/front/calendar/view.php +++ b/applications/calendar/modules/front/calendar/view.php @@ -366,9 +366,9 @@ class view extends Controller { $dayEvents['count']++; - if( $_event->all_day AND ( $_event->nextOccurrence( $date, 'startDate' ) AND - $_event->nextOccurrence( $date, 'startDate' )->strFormat('%d') == $date->mday OR - $_event->nextOccurrence( $date, 'endDate' ) AND $_event->nextOccurrence( $date, 'endDate' )->strFormat('%d') == $date->mday + if( $_event->all_day AND ( + ( $_event->nextOccurrence( $date, 'startDate' ) AND $_event->nextOccurrence( $date, 'startDate' )->getTimestamp() <= $date->getTimestamp() ) OR + ( $_event->nextOccurrence( $date, 'endDate' ) AND $_event->nextOccurrence( $date, 'endDate' )->getTimestamp() >= $date->getTimestamp() ) ) ) { $dayEvents['allDay'][ $_event->id ] = $_event; diff --git a/applications/calendar/setup/upg_107774/data.json b/applications/calendar/setup/upg_107774/data.json new file mode 100644 index 00000000..51b2b34e --- /dev/null +++ b/applications/calendar/setup/upg_107774/data.json @@ -0,0 +1,23 @@ +{ + "id": 107774, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107775/data.json b/applications/calendar/setup/upg_107775/data.json new file mode 100644 index 00000000..4c16685c --- /dev/null +++ b/applications/calendar/setup/upg_107775/data.json @@ -0,0 +1,23 @@ +{ + "id": 107775, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107780/data.json b/applications/calendar/setup/upg_107780/data.json new file mode 100644 index 00000000..0f215599 --- /dev/null +++ b/applications/calendar/setup/upg_107780/data.json @@ -0,0 +1,23 @@ +{ + "id": 107780, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107780/theme.json b/applications/calendar/setup/upg_107780/theme.json new file mode 100644 index 00000000..ea2d5560 --- /dev/null +++ b/applications/calendar/setup/upg_107780/theme.json @@ -0,0 +1,19 @@ +{ + "html": { + "added": [], + "edited": [ + "front\/overview\/header" + ], + "removed": [] + }, + "css": { + "added": [], + "edited": [], + "removed": [] + }, + "resources": { + "added": [], + "edited": [], + "removed": [] + } +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107781/data.json b/applications/calendar/setup/upg_107781/data.json new file mode 100644 index 00000000..19d56ab1 --- /dev/null +++ b/applications/calendar/setup/upg_107781/data.json @@ -0,0 +1,23 @@ +{ + "id": 107781, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107782/data.json b/applications/calendar/setup/upg_107782/data.json new file mode 100644 index 00000000..daa648ab --- /dev/null +++ b/applications/calendar/setup/upg_107782/data.json @@ -0,0 +1,23 @@ +{ + "id": 107782, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107783/data.json b/applications/calendar/setup/upg_107783/data.json new file mode 100644 index 00000000..3a3219c3 --- /dev/null +++ b/applications/calendar/setup/upg_107783/data.json @@ -0,0 +1,23 @@ +{ + "id": 107783, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107784/data.json b/applications/calendar/setup/upg_107784/data.json new file mode 100644 index 00000000..d380afa7 --- /dev/null +++ b/applications/calendar/setup/upg_107784/data.json @@ -0,0 +1,23 @@ +{ + "id": 107784, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107785/data.json b/applications/calendar/setup/upg_107785/data.json new file mode 100644 index 00000000..95c681e9 --- /dev/null +++ b/applications/calendar/setup/upg_107785/data.json @@ -0,0 +1,23 @@ +{ + "id": 107785, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107786/data.json b/applications/calendar/setup/upg_107786/data.json new file mode 100644 index 00000000..5bd423b5 --- /dev/null +++ b/applications/calendar/setup/upg_107786/data.json @@ -0,0 +1,23 @@ +{ + "id": 107786, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_107787/data.json b/applications/calendar/setup/upg_107787/data.json new file mode 100644 index 00000000..de5492c9 --- /dev/null +++ b/applications/calendar/setup/upg_107787/data.json @@ -0,0 +1,23 @@ +{ + "id": 107787, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_5000040/data.json b/applications/calendar/setup/upg_5000040/data.json new file mode 100644 index 00000000..3cacb6eb --- /dev/null +++ b/applications/calendar/setup/upg_5000040/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000040, + "name": "5.0.0 Beta 9.1", + "steps": { + "queries": false, + "lang": false, + "theme": false, + "themeeditor": false, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/calendar/setup/upg_5000041/data.json b/applications/calendar/setup/upg_5000041/data.json new file mode 100644 index 00000000..6f4fc0df --- /dev/null +++ b/applications/calendar/setup/upg_5000041/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000041, + "name": "5.0.0 Beta 10", + "steps": { + "queries": false, + "lang": false, + "theme": false, + "themeeditor": false, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/calendar/sources/Event/Event.php b/applications/calendar/sources/Event/Event.php index 5ffec07a..2bd1e146 100644 --- a/applications/calendar/sources/Event/Event.php +++ b/applications/calendar/sources/Event/Event.php @@ -2032,6 +2032,11 @@ class Event extends Item implements Embeddable, $this->coverPhotoFile()?->delete(); } + /** + * @var string|null + */ + protected ?string $_map = null; + /** * Return the map for the event, if location is specified * @@ -2042,30 +2047,39 @@ class Event extends Item implements Embeddable, */ public function map( int $width, int $height ): string { - /* Show venue map */ - if ( Settings::i()->calendar_venues_enabled ) + if( $this->_map === null ) { - if ( $this->venue ) + /* Show venue map */ + if ( Settings::i()->calendar_venues_enabled ) + { + if ( $this->venue ) + { + try + { + $this->location = Venue::load( $this->venue )->address; + } + catch( OutOfRangeException $e ){} + } + } + + /* No venue? Do we have a specific event location? */ + if ( $this->location ) { try { - $this->location = Venue::load( $this->venue )->address; + $this->_map = GeoLocation::buildFromJson( $this->location )->map()->render( $width, $height ); } - catch( OutOfRangeException $e ){} + catch( BadMethodCallException $e ){} } - } - /* No venue? Do we have a specific event location? */ - if ( $this->location ) - { - try + /* Set to an empty string so we don't run through this multiple times */ + if( $this->_map === null ) { - return GeoLocation::buildFromJson( $this->location )->map()->render( $width, $height ); + $this->_map = ''; } - catch( BadMethodCallException $e ){} } - return ''; + return $this->_map; } /** @@ -2725,6 +2739,5 @@ class Event extends Item implements Embeddable, return $this->author()->member_id == $member->member_id and $this->container()->can( 'add', $member ); } - public static string $itemMenuKey = 'manage_event'; public static string $itemMenuCss = ''; } diff --git a/applications/cms/data/javascript.xml b/applications/cms/data/javascript.xml index b144052a..ece3619b 100644 --- a/applications/cms/data/javascript.xml +++ b/applications/cms/data/javascript.xml @@ -1,6 +1,6 @@ - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -156,7 +156,7 @@ } }); }(jQuery, _)); - - - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -1420,7 +1420,7 @@ } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -1470,7 +1470,7 @@ } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -1542,7 +1542,7 @@ } }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -3009,7 +3009,7 @@ } }); }(jQuery, _)); - \ {{{contents}}}\ \ @@ -3026,7 +3026,7 @@ ips.templates.set( 'templates.media.noSearchResults', "\ {{#lang}}mediaNoResults{{/lang}}\
\ ");]]>
- {{title}} \ diff --git a/applications/cms/data/lang.xml b/applications/cms/data/lang.xml index e9141818..9cc7fbc6 100644 --- a/applications/cms/data/lang.xml +++ b/applications/cms/data/lang.xml @@ -1,6 +1,6 @@ - + Pages Pages file diff --git a/applications/cms/data/theme.xml b/applications/cms/data/theme.xml index cb0a236d..cc314b6b 100644 --- a/applications/cms/data/theme.xml +++ b/applications/cms/data/theme.xml @@ -1072,29 +1072,29 @@ {lang="theme_template_new"}  
-
+
@@ -1114,32 +1114,32 @@
{lang="template_variables_save_warning_msg"}
-

+

{lang="content_template_editor_fields_params"}

-

+

{lang="content_template_editor_fields_title"}

-

+

{lang="content_template_editor_fields_container"}

{{foreach array('block','page', 'database') as $type }} - {{foreach \IPS\cms\Templates::getGroups( $type ) as $groupName}} {{endforeach}} {{endforeach}} -

+

{lang="content_template_editor_fields_desc"}

-
+
@@ -1615,7 +1615,6 @@ /* Search bar and filter */ .cTemplateControls { padding: .5em; - background: var(--i-background_2); min-height: 60px; /* Set a min-height so the search bar and editor toolbar are aligned */ align-content: center; } @@ -1676,8 +1675,8 @@ /* Buttons above editor (Revert, Save, etc) */ .ipsTemplateEditor__editorToolbar { display: flex; - justify-content: end; - gap: 10px; + align-items: center; + gap: 6px; } /* Tabs */ @@ -1685,6 +1684,10 @@ background: var(--i-background_2); /* Always show the tab bar, even if a single tab exists */ display: block; + box-shadow: none; + border: 1px solid var(--i-background_4); + border-width: 1px 0; + padding: .6em; } /* Let the tabs wrap since we don't have the scroller feature here */ diff --git a/applications/cms/data/versions.json b/applications/cms/data/versions.json index 0533f359..a9c30b25 100644 --- a/applications/cms/data/versions.json +++ b/applications/cms/data/versions.json @@ -568,6 +568,24 @@ "107751": "4.7.16", "107760": "4.7.17 Beta 1", "107761": "4.7.17 Beta 2", + "107762": "4.7.17 Beta 3", + "107763": "4.7.17", + "107764": "4.7.17", + "107765": "4.7.17", + "107770": "4.7.18 Beta 1", + "107771": "4.7.18 Beta 2", + "107772": "4.7.18 Beta 3", + "107773": "4.7.18", + "107774": "4.7.18", + "107775": "4.7.18", + "107780": "4.7.19 Beta 1", + "107781": "4.7.19 Beta 2", + "107782": "4.7.19 Beta 3", + "107783": "4.7.19 Beta 4", + "107784": "4.7.19", + "107785": "4.7.19", + "107786": "4.7.19", + "107787": "4.7.19", "500001": "5.0.0 Alpha 1", "500002": "5.0.0 Alpha 2", "5000003": "5.0.0 Alpha 3", @@ -606,5 +624,7 @@ "5000036": "5.0.0 Beta 8", "5000037": "5.0.0 Beta 8", "5000038": "5.0.0 Beta 9", - "5000039": "5.0.0 Beta 9.1" + "5000039": "5.0.0 Beta 9.1", + "5000040": "5.0.0 Beta 9.1", + "5000041": "5.0.0 Beta 10" } \ No newline at end of file diff --git a/applications/cms/extensions/core/SearchContent/Records.php b/applications/cms/extensions/core/SearchContent/Records.php index bf840a94..e72964bc 100644 --- a/applications/cms/extensions/core/SearchContent/Records.php +++ b/applications/cms/extensions/core/SearchContent/Records.php @@ -16,7 +16,7 @@ namespace IPS\cms\extensions\core\SearchContent; use IPS\cms\Databases; use IPS\cms\Fields; use IPS\cms\Records as BaseRecords; -use IPS\cms\Records\Comment; +use IPS\Content\Comment; use IPS\Content\Search\SearchContentAbstract; use Exception; use IPS\Db; diff --git a/applications/cms/modules/admin/pages/templates.php b/applications/cms/modules/admin/pages/templates.php index 12fa5739..87c001c7 100644 --- a/applications/cms/modules/admin/pages/templates.php +++ b/applications/cms/modules/admin/pages/templates.php @@ -1029,6 +1029,7 @@ class templates extends Controller $clone->content = $content; $clone->location = Request::i()->t_location; $clone->group = empty( Request::i()->t_group ) ? null : Request::i()->t_group; + $clone->original_group = $obj->original_group; $clone->params = $variables; $clone->container = $obj->container; $clone->position = $obj->position; diff --git a/applications/cms/setup/upg_107774/data.json b/applications/cms/setup/upg_107774/data.json new file mode 100644 index 00000000..51b2b34e --- /dev/null +++ b/applications/cms/setup/upg_107774/data.json @@ -0,0 +1,23 @@ +{ + "id": 107774, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107775/data.json b/applications/cms/setup/upg_107775/data.json new file mode 100644 index 00000000..4c16685c --- /dev/null +++ b/applications/cms/setup/upg_107775/data.json @@ -0,0 +1,23 @@ +{ + "id": 107775, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107780/data.json b/applications/cms/setup/upg_107780/data.json new file mode 100644 index 00000000..cac4d738 --- /dev/null +++ b/applications/cms/setup/upg_107780/data.json @@ -0,0 +1,23 @@ +{ + "id": 107780, + "name": "4.7.19 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": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107780/javascript.json b/applications/cms/setup/upg_107780/javascript.json new file mode 100644 index 00000000..9cafc674 --- /dev/null +++ b/applications/cms/setup/upg_107780/javascript.json @@ -0,0 +1,14 @@ +{ + "files": { + "added": [], + "edited": [ + "cms\/admin\/controllers\/fields\/ips.fields.form.js" + ], + "removed": [] + }, + "orders": { + "added": [], + "edited": [], + "removed": [] + } +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107781/data.json b/applications/cms/setup/upg_107781/data.json new file mode 100644 index 00000000..19d56ab1 --- /dev/null +++ b/applications/cms/setup/upg_107781/data.json @@ -0,0 +1,23 @@ +{ + "id": 107781, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107782/data.json b/applications/cms/setup/upg_107782/data.json new file mode 100644 index 00000000..daa648ab --- /dev/null +++ b/applications/cms/setup/upg_107782/data.json @@ -0,0 +1,23 @@ +{ + "id": 107782, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107783/data.json b/applications/cms/setup/upg_107783/data.json new file mode 100644 index 00000000..3a3219c3 --- /dev/null +++ b/applications/cms/setup/upg_107783/data.json @@ -0,0 +1,23 @@ +{ + "id": 107783, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107784/data.json b/applications/cms/setup/upg_107784/data.json new file mode 100644 index 00000000..d380afa7 --- /dev/null +++ b/applications/cms/setup/upg_107784/data.json @@ -0,0 +1,23 @@ +{ + "id": 107784, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107785/data.json b/applications/cms/setup/upg_107785/data.json new file mode 100644 index 00000000..95c681e9 --- /dev/null +++ b/applications/cms/setup/upg_107785/data.json @@ -0,0 +1,23 @@ +{ + "id": 107785, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107786/data.json b/applications/cms/setup/upg_107786/data.json new file mode 100644 index 00000000..5bd423b5 --- /dev/null +++ b/applications/cms/setup/upg_107786/data.json @@ -0,0 +1,23 @@ +{ + "id": 107786, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_107787/data.json b/applications/cms/setup/upg_107787/data.json new file mode 100644 index 00000000..de5492c9 --- /dev/null +++ b/applications/cms/setup/upg_107787/data.json @@ -0,0 +1,23 @@ +{ + "id": 107787, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/cms/setup/upg_5000040/data.json b/applications/cms/setup/upg_5000040/data.json new file mode 100644 index 00000000..3cacb6eb --- /dev/null +++ b/applications/cms/setup/upg_5000040/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000040, + "name": "5.0.0 Beta 9.1", + "steps": { + "queries": false, + "lang": false, + "theme": false, + "themeeditor": false, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/cms/setup/upg_5000041/data.json b/applications/cms/setup/upg_5000041/data.json new file mode 100644 index 00000000..413cb58b --- /dev/null +++ b/applications/cms/setup/upg_5000041/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000041, + "name": "5.0.0 Beta 10", + "steps": { + "queries": false, + "lang": false, + "theme": true, + "themeeditor": false, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/cms/setup/upg_5000041/theme.json b/applications/cms/setup/upg_5000041/theme.json new file mode 100644 index 00000000..1ce6ebfc --- /dev/null +++ b/applications/cms/setup/upg_5000041/theme.json @@ -0,0 +1,21 @@ +{ + "html": { + "added": [], + "edited": [ + "admin\/templates\/templates" + ], + "removed": [] + }, + "css": { + "added": [], + "edited": [ + "admin\/templates\/templates.css" + ], + "removed": [] + }, + "resources": { + "added": [], + "edited": [], + "removed": [] + } +} \ No newline at end of file diff --git a/applications/cms/sources/Blocks/Block.php b/applications/cms/sources/Blocks/Block.php index 00140b64..c2c70fac 100644 --- a/applications/cms/sources/Blocks/Block.php +++ b/applications/cms/sources/Blocks/Block.php @@ -1060,6 +1060,11 @@ EOF; $customBlocksWithBlocks = []; foreach( Db::i()->select( '*', 'cms_blocks', [ 'block_type=?', 'custom' ] ) as $row ) { + if( empty( $row['block_content'] ) ) + { + continue; + } + preg_match_all( '/\{block="(.+?)"}/is', $row['block_content'], $matches ); if( count( $matches[1] ) ) { diff --git a/applications/convert/data/javascript.xml b/applications/convert/data/javascript.xml index 1de925b2..ce3ac866 100644 --- a/applications/convert/data/javascript.xml +++ b/applications/convert/data/javascript.xml @@ -1,6 +1,6 @@ - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -45,7 +45,7 @@ } } ); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * diff --git a/applications/convert/data/lang.xml b/applications/convert/data/lang.xml index 64b073a2..dcf7d7fe 100644 --- a/applications/convert/data/lang.xml +++ b/applications/convert/data/lang.xml @@ -1,6 +1,6 @@ - + Converter Conversions Start New Conversion diff --git a/applications/convert/data/versions.json b/applications/convert/data/versions.json index b5d021c6..6e67c960 100644 --- a/applications/convert/data/versions.json +++ b/applications/convert/data/versions.json @@ -250,6 +250,24 @@ "107751": "4.7.16", "107760": "4.7.17 Beta 1", "107761": "4.7.17 Beta 2", + "107762": "4.7.17 Beta 3", + "107763": "4.7.17", + "107764": "4.7.17", + "107765": "4.7.17", + "107770": "4.7.18 Beta 1", + "107771": "4.7.18 Beta 2", + "107772": "4.7.18 Beta 3", + "107773": "4.7.18", + "107774": "4.7.18", + "107775": "4.7.18", + "107780": "4.7.19 Beta 1", + "107781": "4.7.19 Beta 2", + "107782": "4.7.19 Beta 3", + "107783": "4.7.19 Beta 4", + "107784": "4.7.19", + "107785": "4.7.19", + "107786": "4.7.19", + "107787": "4.7.19", "500001": "5.0.0 Alpha 1", "500002": "5.0.0 Alpha 2", "5000003": "5.0.0 Alpha 3", @@ -288,5 +306,7 @@ "5000036": "5.0.0 Beta 8", "5000037": "5.0.0 Beta 8", "5000038": "5.0.0 Beta 9", - "5000039": "5.0.0 Beta 9.1" + "5000039": "5.0.0 Beta 9.1", + "5000040": "5.0.0 Beta 9.1", + "5000041": "5.0.0 Beta 10" } \ No newline at end of file diff --git a/applications/convert/extensions/core/Queue/RebuildGalleryImages.php b/applications/convert/extensions/core/Queue/RebuildGalleryImages.php index 43d863b4..4b7b7409 100644 --- a/applications/convert/extensions/core/Queue/RebuildGalleryImages.php +++ b/applications/convert/extensions/core/Queue/RebuildGalleryImages.php @@ -24,7 +24,7 @@ use IPS\Member; use IPS\Patterns\ActiveRecordIterator; use IPS\Task\Queue\OutOfRangeException; use function defined; -use const IPS\REBUILD_SLOW; +use const IPS\REBUILD_INTENSE; if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { diff --git a/applications/convert/setup/upg_107774/data.json b/applications/convert/setup/upg_107774/data.json new file mode 100644 index 00000000..51b2b34e --- /dev/null +++ b/applications/convert/setup/upg_107774/data.json @@ -0,0 +1,23 @@ +{ + "id": 107774, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107775/data.json b/applications/convert/setup/upg_107775/data.json new file mode 100644 index 00000000..4c16685c --- /dev/null +++ b/applications/convert/setup/upg_107775/data.json @@ -0,0 +1,23 @@ +{ + "id": 107775, + "name": "4.7.18", + "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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107780/data.json b/applications/convert/setup/upg_107780/data.json new file mode 100644 index 00000000..c833a50b --- /dev/null +++ b/applications/convert/setup/upg_107780/data.json @@ -0,0 +1,23 @@ +{ + "id": 107780, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107781/data.json b/applications/convert/setup/upg_107781/data.json new file mode 100644 index 00000000..19d56ab1 --- /dev/null +++ b/applications/convert/setup/upg_107781/data.json @@ -0,0 +1,23 @@ +{ + "id": 107781, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107782/data.json b/applications/convert/setup/upg_107782/data.json new file mode 100644 index 00000000..daa648ab --- /dev/null +++ b/applications/convert/setup/upg_107782/data.json @@ -0,0 +1,23 @@ +{ + "id": 107782, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107783/data.json b/applications/convert/setup/upg_107783/data.json new file mode 100644 index 00000000..3a3219c3 --- /dev/null +++ b/applications/convert/setup/upg_107783/data.json @@ -0,0 +1,23 @@ +{ + "id": 107783, + "name": "4.7.19 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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107784/data.json b/applications/convert/setup/upg_107784/data.json new file mode 100644 index 00000000..d380afa7 --- /dev/null +++ b/applications/convert/setup/upg_107784/data.json @@ -0,0 +1,23 @@ +{ + "id": 107784, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107785/data.json b/applications/convert/setup/upg_107785/data.json new file mode 100644 index 00000000..95c681e9 --- /dev/null +++ b/applications/convert/setup/upg_107785/data.json @@ -0,0 +1,23 @@ +{ + "id": 107785, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107786/data.json b/applications/convert/setup/upg_107786/data.json new file mode 100644 index 00000000..5bd423b5 --- /dev/null +++ b/applications/convert/setup/upg_107786/data.json @@ -0,0 +1,23 @@ +{ + "id": 107786, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_107787/data.json b/applications/convert/setup/upg_107787/data.json new file mode 100644 index 00000000..de5492c9 --- /dev/null +++ b/applications/convert/setup/upg_107787/data.json @@ -0,0 +1,23 @@ +{ + "id": 107787, + "name": "4.7.19", + "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 +} \ No newline at end of file diff --git a/applications/convert/setup/upg_5000040/data.json b/applications/convert/setup/upg_5000040/data.json new file mode 100644 index 00000000..3cacb6eb --- /dev/null +++ b/applications/convert/setup/upg_5000040/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000040, + "name": "5.0.0 Beta 9.1", + "steps": { + "queries": false, + "lang": false, + "theme": false, + "themeeditor": false, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/convert/setup/upg_5000041/data.json b/applications/convert/setup/upg_5000041/data.json new file mode 100644 index 00000000..6f4fc0df --- /dev/null +++ b/applications/convert/setup/upg_5000041/data.json @@ -0,0 +1,22 @@ +{ + "id": 5000041, + "name": "5.0.0 Beta 10", + "steps": { + "queries": false, + "lang": false, + "theme": false, + "themeeditor": false, + "javascript": false, + "emailTemplates": false, + "acpSearchKeywords": false, + "settings": false, + "tasks": false, + "modules": false, + "widgets": false, + "customOptions": false, + "customRoutines": false + }, + "forceMainUpgrader": false, + "forceManualDownloadNoCiC": false, + "forceManualDownloadCiC": false +} \ No newline at end of file diff --git a/applications/core/api/GraphQL/Mutations/DeleteAttachment.php b/applications/core/api/GraphQL/Mutations/DeleteAttachment.php index 65111f27..b2852b26 100644 --- a/applications/core/api/GraphQL/Mutations/DeleteAttachment.php +++ b/applications/core/api/GraphQL/Mutations/DeleteAttachment.php @@ -67,10 +67,10 @@ class DeleteAttachment * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return bool */ - public function resolve( mixed $val, array $args, array $context, array $info ) : bool + public function resolve( mixed $val, array $args, array $context, mixed $info ) : bool { /* Get the attachment */ try diff --git a/applications/core/api/GraphQL/Mutations/UploadAttachment.php b/applications/core/api/GraphQL/Mutations/UploadAttachment.php index d222d578..de5a72de 100644 --- a/applications/core/api/GraphQL/Mutations/UploadAttachment.php +++ b/applications/core/api/GraphQL/Mutations/UploadAttachment.php @@ -84,10 +84,10 @@ class UploadAttachment * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return array */ - public function resolve( mixed $val, array $args, array $context, array $info ) : array + public function resolve( mixed $val, array $args, array $context, mixed $info ) : array { $storageClass = File::getClass( 'core_Attachment' ); $contents = base64_decode( $args['contents'] ); diff --git a/applications/core/api/GraphQL/Queries/Members.php b/applications/core/api/GraphQL/Queries/Members.php index 9849da2f..a3c330ed 100644 --- a/applications/core/api/GraphQL/Queries/Members.php +++ b/applications/core/api/GraphQL/Queries/Members.php @@ -88,10 +88,10 @@ class Members * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return ActiveRecordIterator */ - public function resolve( mixed $val, array $args, array $context, array $info ) : ActiveRecordIterator + public function resolve( mixed $val, array $args, array $context, mixed $info ) : ActiveRecordIterator { $where = []; $sortBy = ( isset( $args['orderBy'] ) and in_array( $args['orderBy'], MemberType::getOrderByOptions() ) ) ? $args['orderBy'] : 'member_id'; diff --git a/applications/core/api/GraphQL/Queries/MessengerConversation.php b/applications/core/api/GraphQL/Queries/MessengerConversation.php index b20a21ff..c1a8a7f3 100644 --- a/applications/core/api/GraphQL/Queries/MessengerConversation.php +++ b/applications/core/api/GraphQL/Queries/MessengerConversation.php @@ -58,10 +58,10 @@ class MessengerConversation * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return Conversation */ - public function resolve( mixed $val, array $args, array $context, array $info ) : Conversation + public function resolve( mixed $val, array $args, array $context, mixed $info ) : Conversation { try { diff --git a/applications/core/api/GraphQL/Queries/MessengerConversations.php b/applications/core/api/GraphQL/Queries/MessengerConversations.php index 227fa14d..aad5bcb1 100644 --- a/applications/core/api/GraphQL/Queries/MessengerConversations.php +++ b/applications/core/api/GraphQL/Queries/MessengerConversations.php @@ -107,10 +107,10 @@ class MessengerConversations * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return ActiveRecordIterator|array */ - public function resolve( mixed $val, array $args, array $context, array $info ) : ActiveRecordIterator|array + public function resolve( mixed $val, array $args, array $context, mixed $info ) : ActiveRecordIterator|array { // Start to build the query to fetch messages $where = array( array( 'core_message_topic_user_map.map_user_id=? AND core_message_topic_user_map.map_user_active=1', Member::loggedIn()->member_id ) ); diff --git a/applications/core/api/GraphQL/Queries/MessengerFolders.php b/applications/core/api/GraphQL/Queries/MessengerFolders.php index 4c77181d..1e270b39 100644 --- a/applications/core/api/GraphQL/Queries/MessengerFolders.php +++ b/applications/core/api/GraphQL/Queries/MessengerFolders.php @@ -59,10 +59,10 @@ class MessengerFolders * @param mixed $val Value passed into this resolver * @param array $args Arguments * @param array $context Context values - * @param array $info + * @param mixed $info * @return array|null */ - public function resolve( mixed $val, array $args, array $context, array $info ) : ?array + public function resolve( mixed $val, array $args, array $context, mixed $info ) : ?array { if( !Member::loggedIn()->member_id || Member::loggedIn()->members_disable_pm ) { diff --git a/applications/core/api/GraphQL/Queries/Search.php b/applications/core/api/GraphQL/Queries/Search.php index 58075589..5d42ac26 100644 --- a/applications/core/api/GraphQL/Queries/Search.php +++ b/applications/core/api/GraphQL/Queries/Search.php @@ -95,7 +95,7 @@ class Search * @param array $context Context values * @return array */ - public function resolve( mixed $val, array $args, array $context ) : array + public function resolve( mixed $val, array $args, array $context, mixed $info ) : array { $where = array(); $returnObject = array(); @@ -149,27 +149,18 @@ class Search $query->filterByContent( array( $filter ) ); } - $orderBy = $query->getDefaultSortMethod(); + $orderBy = $args['orderBy'] ?? $query->getDefaultSortMethod(); // Ordering - if( isset( $args['orderBy'] ) ) + switch( $orderBy ) { - switch( $args['orderBy'] ) - { - case 'newest': - $query->setOrder( Query::ORDER_NEWEST_CREATED ); + case 'newest': + $query->setOrder( Query::ORDER_NEWEST_CREATED ); break; - case 'relevancy': - $query->setOrder( Query::ORDER_RELEVANCY ); + case 'relevancy': + default: + $query->setOrder( Query::ORDER_RELEVANCY ); break; - default: - $query->setOrder( $orderBy ); - break; - } - } - else - { - $query->setOrder( $orderBy ); } // Get page diff --git a/applications/core/api/GraphQL/Types/ContentSearchResultType.php b/applications/core/api/GraphQL/Types/ContentSearchResultType.php index fc5b57ff..4f31b425 100644 --- a/applications/core/api/GraphQL/Types/ContentSearchResultType.php +++ b/applications/core/api/GraphQL/Types/ContentSearchResultType.php @@ -17,6 +17,7 @@ use IPS\Content\Comment; use IPS\Content\Item; use IPS\Content\Reaction; use IPS\Content\Search\Result; +use IPS\Content\Search\SearchContent; use IPS\File; use IPS\Http\Url; use IPS\Member; @@ -402,7 +403,8 @@ class ContentSearchResultType extends ObjectType /* @var Item $itemClass */ $itemClass = static::getItemClass( $asArray ); - $itemUrl = $itemClass::urlFromIndexData( $asArray['indexData'], $asArray['itemData'] ); + $extension = SearchContent::extension( $itemClass ); + $itemUrl = $extension::urlFromIndexData( $asArray['indexData'], $asArray['itemData'] ); /* Object URL */ if ( in_array( 'IPS\Content\Comment', class_parents( $asArray['indexData']['index_class'] ) ) ) @@ -519,10 +521,10 @@ class ContentSearchResultType extends ObjectType /** * Get the item class for the result * - * @param Result $result Array representation of \IPS\Content\Search\Result + * @param array $result Array representation of \IPS\Content\Search\Result * @return string */ - protected static function getItemClass( Result $result ) : string + protected static function getItemClass( array $result ) : string { $indexClass = $result['indexData']['index_class']; return ( in_array( 'IPS\Content\Comment', class_parents( $indexClass ) ) ) ? $indexClass::$itemClass : $indexClass; diff --git a/applications/core/api/GraphQL/Types/TagType.php b/applications/core/api/GraphQL/Types/TagType.php index e997fe4f..87216ea4 100644 --- a/applications/core/api/GraphQL/Types/TagType.php +++ b/applications/core/api/GraphQL/Types/TagType.php @@ -12,6 +12,7 @@ namespace IPS\core\api\GraphQL\Types; use GraphQL\Type\Definition\ObjectType; use IPS\Api\GraphQL\TypeRegistry; +use IPS\Content\Tag; use IPS\Http\Url; use function defined; @@ -49,8 +50,7 @@ class TagType extends ObjectType 'type' => TypeRegistry::string(), 'description' => "Tag URL", 'resolve' => function ($tag) { - $_tag = urlencode($tag); - return Url::internal( "app=core&module=discover&controller=tag&tag={$_tag}", 'front', 'tags' ); + return Tag::buildTagUrl( $tag ); } ] ]; diff --git a/applications/core/data/defaults/Widget.txt b/applications/core/data/defaults/Widget.txt index 55ec5939..0cef5e12 100644 --- a/applications/core/data/defaults/Widget.txt +++ b/applications/core/data/defaults/Widget.txt @@ -43,14 +43,11 @@ class {key} extends {class} */ public function init() : void { + parent::init(); + // Use this to perform any set up and to assign a template that is not in the following format: // $this->template( array( \IPS\Theme::i()->getTemplate( 'widgets', $this->app, 'front' ), $this->key ) ); - // If you are creating a plugin, uncomment this line: - // $this->template( array( \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' ), $this->key ) ); - // And then create your template at located at plugins//dev/html/{key}.phtml - - - parent::init(); + // Note: parent::init() will set a default template, so make sure your template is defined after the parent is called. } /** diff --git a/applications/core/data/defaults/listeners/ClubListenerType.txt b/applications/core/data/defaults/listeners/ClubListenerType.txt new file mode 100644 index 00000000..5034602e --- /dev/null +++ b/applications/core/data/defaults/listeners/ClubListenerType.txt @@ -0,0 +1,31 @@ +Invision Power Services, Inc. + * @copyright (c) Invision Power Services, Inc. + * @license https://www.invisioncommunity.com/legal/standards/ + * @package Invision Community +{subpackage} + * @since {date} + */ + +namespace IPS\{app}\listeners; + +/* To prevent PHP errors (extending class does not exist) revealing path */ + +use IPS\Events\ListenerType\ClubListenerType; +use IPS\Member\Club; +use function defined; + +if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) +{ + header(($_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0') . ' 403 Forbidden'); + exit; +} + +/** + * Club Listener + */ +class {filename} extends ClubListenerType +{ +} \ No newline at end of file diff --git a/applications/core/data/editorManifest.json b/applications/core/data/editorManifest.json index 0407a6a6..2b91bc2b 100644 --- a/applications/core/data/editorManifest.json +++ b/applications/core/data/editorManifest.json @@ -69,7 +69,7 @@ "isDynamicEntry": true }, "src/main.jsx": { - "file": "assets/main-Ce8dEiGN.js", + "file": "assets/main-Du6DOVZr.js", "name": "main", "src": "src/main.jsx", "isEntry": true, diff --git a/applications/core/data/javascript.xml b/applications/core/data/javascript.xml index e490f20c..2609202b 100644 --- a/applications/core/data/javascript.xml +++ b/applications/core/data/javascript.xml @@ -1,6 +1,6 @@ - - - { const raw = String.raw({raw:str}, ...values) return ips.getString(raw) || raw }]]> - { }( jQuery, _ )); ]]> - { } }); }( jQuery, _ )); ]]> - { }); }( jQuery, _ ));]]> - { + { "use strict"; /** @@ -2414,7 +2414,7 @@ const ilang = (str, ...values) => { } } })(jQuery, _));]]> - { }; }); }(jQuery, _));]]> - /* global ips, _, Debug */ + /* global ips, _, Debug */ /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com @@ -2975,7 +2975,7 @@ const ilang = (str, ...values) => { }; }(jQuery, _)); - { return AlertMessage.buildModuleAndRegisterWidget('alertMessage'); }) }(jQuery, _));]]> - { }; }(jQuery, _));]]> - { }(jQuery, _)); ]]> - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -5584,7 +5584,7 @@ function recaptcha2Callback(){ }; }); }(jQuery, _)); - - { + { "use strict"; ips.createModule('ips.ui._codehighlighting', function() { @@ -5799,7 +5799,7 @@ function recaptcha2Callback(){ return {} }) })(jQuery, _))]]> - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -7222,7 +7222,7 @@ function recaptcha2Callback(){ }; }); }(jQuery, _)); - - - - - - - - - - - - - - - - - - - - - ;( function(){ + ;( function(){ "use strict"; ips.createModule('ips.ui.readmore', function(){ @@ -15558,7 +15558,7 @@ function recaptcha2Callback(){ }); }()); - - - - - - - - } + */ + const TRUNCATE_CALLBACK_MAP = new WeakMap(); + document.addEventListener('ips:truncateCollapse', e => { + if (TRUNCATE_CALLBACK_MAP.has(e.target)) { + TRUNCATE_CALLBACK_MAP.get(e.target)(); + TRUNCATE_CALLBACK_MAP.delete(e.target); + } + }, {capture: true}); var defaults = { - expandText: ips.getString('show_more') + expandText: ips.getString('show_more'), + deferred: false, + deferredClasses: undefined, }; var respond = function (elem, options) { @@ -18268,10 +18285,25 @@ function recaptcha2Callback(){ if (el.closest('[data-ipseditorv5],.tiptap')) { return; } - if (el.scrollHeight > el.offsetHeight){ - _hideTruncate( elem, _.defaults( options, defaults ) ); + + const collapseIfNeeded = () => { + delete el.dataset.ipstruncateDeferred; // this causes the css to remove the overflow effect; we need to remove it before evaluating the scroll height. + if (el.scrollHeight > el.offsetHeight) { + if (options.deferred && options.deferredClasses) { + for (const cls of options.deferredClasses.split(/\s+/)) { + el.classList.add(cls); + } + } + _hideTruncate(elem, _.defaults(options, defaults)); + } } - + + if (options.deferred) { + TRUNCATE_CALLBACK_MAP.set(el, collapseIfNeeded); + return; + } + + collapseIfNeeded(); }, /** @@ -18305,7 +18337,7 @@ function recaptcha2Callback(){ }; ips.ui.registerWidget( 'truncate', ips.ui.truncate, - ['expandText'] + ['expandText', 'deferred'] ); return { @@ -18313,7 +18345,7 @@ function recaptcha2Callback(){ }; }); }(jQuery, _));]]> - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -19984,7 +20016,7 @@ function recaptcha2Callback(){ }); }(jQuery, _)); - - { + const channel = 'BroadcastChannel' in window ? new window.BroadcastChannel("ipsBroadcastChannel") : undefined; + return { + channel: channel, + enabled: 'BroadcastChannel' in window + } + }) +})(jQuery, _);]]> + - - - - - - - - - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -24080,7 +24128,7 @@ function recaptcha2Callback(){ }; }); }(jQuery, _)); - - { + { "use strict"; ips.createModule('ips.utils.pagebuildericons', function() { @@ -24328,7 +24376,7 @@ function recaptcha2Callback(){ return {} }) })(jQuery, _))]]> - - - - - - - - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -27813,7 +27861,7 @@ var escapeRegExp; }); }(jQuery, _)); - - - - - - - - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -30029,7 +30077,7 @@ var escapeRegExp; }); }(jQuery, _)); - } ev + * @returns {void} + */ colorScheme(ev){ + // If the color scheme toggle has been disabled, return early. + if(document.documentElement.matches('[data-ips-scheme-toggle="false"]')){ + return; + } + let value = ev.detail.scheme; document.querySelectorAll('[data-ips-prefers-color-scheme]').forEach(el => { - el.removeAttribute('aria-current'); if(el.matches('[data-ips-prefers-color-scheme=' + value + ']')){ el.setAttribute('aria-current', 'true'); + } else { + el.removeAttribute('aria-current'); } }); @@ -30235,7 +30314,7 @@ var escapeRegExp; }); }(jQuery, _)); ]]> - - - - - { + toCollapse.dispatchEvent(new CustomEvent("ips:truncateCollapse", {bubbles: true})); + }) + } + + this._paginatedOnce = true; //var newObj = {}; //newObj[ this._pageParam ] = data.pageNo; var urlObj = ips.utils.url.getURIObject( data.href ); @@ -33030,7 +33128,7 @@ var escapeRegExp; */ quickReply: function (e) { - var form = this.scope.find('[data-role="replyArea"] form'); + const form = this.scope.find('[data-role="replyArea"] form'); if ( form.attr('data-noAjax') ) { return; } @@ -33038,20 +33136,30 @@ var escapeRegExp; e.preventDefault(); e.stopPropagation(); - var self = this; - var replyArea = this.scope.find('[data-role="replyArea"]'); - var submit = form.find('[type="submit"]'); - var autoFollow = this.scope.find('input[name$="auto_follow_checkbox"]'); - var commentsOnThisPage = this.scope.find('[data-commentid]'); - var _lastSeenID = this._getLastSeenID( commentsOnThisPage ); + const self = this; + const replyArea = this.scope.find('[data-role="replyArea"]'); + const submit = form.find('[type="submit"]'); + const autoFollow = this.scope.find('input[name$="auto_follow_checkbox"]'); + const commentsOnThisPage = this.scope.find('[data-commentid]'); + const _lastSeenID = this._getLastSeenID(commentsOnThisPage); // Set the form to loading - var initialText = submit.text(); - submit - .prop( 'disabled', true ) - .text( ips.getString('saving') ); + const submitButtons = [...submit]; + const submitRestorations = []; + submitButtons.forEach(button => { + if (button.closest('.ipsIconPicker')) { + return; + } + const initialText = button.innerText; + button.setAttribute('disabled', ''); + button.innerText = ips.getString('saving'); + submitRestorations.push(() => { + button.removeAttribute('disabled'); + button.innerText = initialText; + }); + }); - var page = ips.utils.url.getPageNumber( this._pageParam ); + let page = ips.utils.url.getPageNumber(this._pageParam); if( !page ){ page = 1; @@ -33175,9 +33283,7 @@ var escapeRegExp; } }) .always( function () { - submit - .prop( 'disabled', false ) - .text( initialText ? initialText : ips.getString('submit_reply') ); + submitRestorations.forEach(cb => cb()); }); }, @@ -33682,7 +33788,7 @@ var escapeRegExp; /** @type {WeakSet} */ const OLD_TIME_ELEMENTS = new WeakSet(); }(jQuery, _));]]> - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -33743,7 +33849,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * IPS Social Suite 4 * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -33785,7 +33891,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -34400,7 +34506,7 @@ var escapeRegExp; }); }(jQuery, _)); - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -35455,7 +35561,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://invisioncommunity.com * @@ -35983,7 +36089,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -36021,7 +36127,7 @@ var escapeRegExp; }); }(jQuery, _)); - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -36570,7 +36676,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -37152,7 +37258,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -37727,7 +37833,7 @@ var escapeRegExp; }); }(jQuery, _)); - /** + /** * IPS Social Suite 4 * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -37786,7 +37892,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -37811,7 +37917,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -38199,7 +38305,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * IPS Social Suite 4 * (c) 2018 Invision Power Services - http://www.invisionpower.com * @@ -38274,7 +38380,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * IPS Social Suite 4 * (c) 2013 Invision Power Services - http://www.invisionpower.com * @@ -38295,7 +38401,7 @@ var escapeRegExp; }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -39009,7 +39115,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -39130,7 +39236,7 @@ var escapeRegExp; }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -40007,7 +40113,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -40900,7 +41006,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -41232,7 +41338,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -41618,7 +41724,7 @@ var escapeRegExp; - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -41681,7 +41787,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -42829,7 +42935,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -43185,7 +43291,7 @@ var escapeRegExp; }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -43339,7 +43445,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -43463,7 +43569,7 @@ var escapeRegExp; }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -43489,7 +43595,7 @@ var escapeRegExp; }); }(jQuery, _)); - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -43937,7 +44043,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -43983,7 +44089,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -46182,7 +46288,7 @@ var escapeRegExp; }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -46245,7 +46351,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -46868,7 +46974,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -47961,7 +48067,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -48027,7 +48133,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - - - - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -51137,7 +51243,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -51515,7 +51621,7 @@ var escapeRegExp; }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -51645,7 +51751,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -51762,7 +51868,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -51812,7 +51918,7 @@ var escapeRegExp; } }); }(jQuery, _)); - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -51860,7 +51966,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -52440,7 +52546,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -52820,7 +52926,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - - - - \x20\t\r\n\f]*)[^>]*)\/>/gi;s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},i(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(F,"<$1>"))!==t&&T(t)!==T(r)&&u("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(F,"<$1>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags");var D,W,_,I=s.fn.offset;return i(s.fn,"offset",function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?I.apply(this,arguments):(u("offset-valid-elem","jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},"offset-valid-elem"),s.ajax&&(D=s.param,i(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(u("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),D.call(this,e,t)},"param-ajax-traditional")),c(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(W=s.Deferred,_=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],i(s,"Deferred",function(e){var a=W(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(_,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return c(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),c(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=W.exceptionHook),s});]]> - - +~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0
- 1?a[1]:a[0];break;case S+"X":l[2]=r.tan(M(a));break;case S+"Y":l[1]=r.tan(M(a));break;case x:a=a.split(",");l[0]=a[0];l[1]=a[1];l[2]=a[2];l[3]=a[3];l[4]=parseInt(a[4],10);l[5]=parseInt(a[5],10);break}c[0]=f[0]*l[0]+f[2]*l[1];c[1]=f[1]*l[0]+f[3]*l[1];c[2]=f[0]*l[2]+f[2]*l[3];c[3]=f[1]*l[2]+f[3]*l[3];c[4]=f[0]*l[4]+f[2]*l[5]+f[4];c[5]=f[1]*l[4]+f[3]*l[5]+f[5];f=[c[0],c[1],c[2],c[3],c[4],c[5]]}return c}function N(e){var t,n,i,s=e[0],o=e[1],u=e[2],a=e[3];if(s*a-o*u){t=r.sqrt(s*s+o*o);s/=t;o/=t;i=s*u+o*a;u-=s*i;a-=o*i;n=r.sqrt(u*u+a*a);u/=n;a/=n;i/=n;if(s*a1?t[1]:e==E?r||t[0]:n+"")]:[n,n];break;case S+"X":case S+"Y":case w:t=t?M(t):0;break;case x:return N(t?_(t):[1,0,0,1,0,0]);break}return[[i,t]]}function L(e){return m.test(e)}function A(e){return e.replace(/(?:\([^)]*\))|\s/g,"")}function O(e,t,n){while(n=t.shift()){e.push(n)}}function M(e){return~e.indexOf("deg")?parseInt(e,10)*(r.PI*2/360):~e.indexOf("grad")?parseInt(e,10)*(r.PI/200):parseFloat(e)}function _(e){e=/([^,]*),([^,]*),([^,]*),([^,]*),([^,p]*)(?:px)?,([^)p]*)(?:px)?/.exec(e);return[e[1],e[2],e[3],e[4],e[5],e[6]]}var s=n.createElement("div"),o=s.style,u="Transform",a=["O"+u,"ms"+u,"Webkit"+u,"Moz"+u],f=a.length,l,c,h="Float32Array"in t,p,d,v=/Matrix([^)]*)/,m=/^\s*matrix\(\s*1\s*,\s*0\s*,\s*0\s*,\s*1\s*(?:,\s*0(?:px)?\s*){2}\)\s*$/,g="transform",y="transformOrigin",b="translate",w="rotate",E="scale",S="skew",x="matrix";while(f--){if(a[f]in o){e.support[g]=l=a[f];e.support[y]=l+"Origin";continue}}if(!l){e.support.matrixFilter=c=o.filter===""}e.cssNumber[g]=e.cssNumber[y]=true;if(l&&l!=g){e.cssProps[g]=l;e.cssProps[y]=l+"Origin";if(l=="Moz"+u){p={get:function(t,n){return n?e.css(t,l).split("px").join(""):t.style[l]},set:function(e,t){e.style[l]=/matrix\([^)p]*\)/.test(t)?t.replace(/matrix((?:[^,]*,){4})([^,]*),([^)]*)/,x+"$1$2px,$3px"):t}}}else if(/^1\.[0-5](?:\.|$)/.test(e.fn.jquery)){p={get:function(t,n){return n?e.css(t,l.replace(/^ms/,"Ms")):t.style[l]}}}}else if(c){p={get:function(t,n,r){var s=n&&t.currentStyle?t.currentStyle:t.style,o,u;if(s&&v.test(s.filter)){o=RegExp.$1.split(",");o=[o[0].split("=")[1],o[2].split("=")[1],o[1].split("=")[1],o[3].split("=")[1]]}else{o=[1,0,0,1]}if(!e.cssHooks[y]){o[4]=s?parseInt(s.left,10)||0:0;o[5]=s?parseInt(s.top,10)||0:0}else{u=e._data(t,"transformTranslate",i);o[4]=u?u[0]:0;o[5]=u?u[1]:0}return r?o:x+"("+o+")"},set:function(t,n,r){var i=t.style,s,o,u,a;if(!r){i.zoom=1}n=T(n);o=["Matrix("+"M11="+n[0],"M12="+n[2],"M21="+n[1],"M22="+n[3],"SizingMethod='auto expand'"].join();u=(s=t.currentStyle)&&s.filter||i.filter||"";i.filter=v.test(u)?u.replace(v,o):u+" progid:DXImageTransform.Microsoft."+o+")";if(!e.cssHooks[y]){if(a=e.transform.centerOrigin){i[a=="margin"?"marginLeft":"left"]=-(t.offsetWidth/2)+t.clientWidth/2+"px";i[a=="margin"?"marginTop":"top"]=-(t.offsetHeight/2)+t.clientHeight/2+"px"}i.left=n[4]+"px";i.top=n[5]+"px"}else{e.cssHooks[y].set(t,n)}}}}if(p){e.cssHooks[g]=p}d=p&&p.get||e.css;e.fx.step.transform=function(t){var n=t.elem,i=t.start,s=t.end,o=t.pos,u="",a=1e5,f,h,v,m;if(!i||typeof i==="string"){if(!i){i=d(n,l)}if(c){n.style.zoom=1}s=s.split("+=").join(i);e.extend(t,C(i,s));i=t.start;s=t.end}f=i.length;while(f--){h=i[f];v=s[f];m=+false;switch(h[0]){case b:m="px";case E:m||(m="");u=h[0]+"("+r.round((h[1][0]+(v[1][0]-h[1][0])*o)*a)/a+m+","+r.round((h[1][1]+(v[1][1]-h[1][1])*o)*a)/a+m+")"+u;break;case S+"X":case S+"Y":case w:u=h[0]+"("+r.round((h[1]+(v[1]-h[1])*o)*a)/a+"rad)"+u;break}}t.origin&&(u=t.origin+u);p&&p.set?p.set(n,u,+true):n.style[l]=u};e.transform={centerOrigin:"margin"}})(jQuery,window,document,Math)]]> - =0;r--)e.insertBefore(n[r],i),i=n[r]}function r(e,t,n){for(var i=[],r=e,a=Array.isArray(r),o=0,r=a?r:r[Symbol.iterator]();;){var l;if(a){if(o>=r.length)break;l=r[o++]}else{if(o=r.next(),o.done)break;l=o.value}var f=l;if("nl"===f.type&&t.nl2br)i.push(n.createElement("br"));else if(f.isLink&&t.check(f)){var s=t.resolve(f),c=s.formatted,u=s.formattedHref,d=s.tagName,m=s.className,y=s.target,h=s.events,k=s.attributes,v=n.createElement(d);if(v.setAttribute("href",u),m&&v.setAttribute("class",m),y&&v.setAttribute("target",y),k)for(var g in k)v.setAttribute(g,k[g]);if(h)for(var b in h)v.addEventListener?v.addEventListener(b,h[b]):v.attachEvent&&v.attachEvent("on"+b,h[b]);v.appendChild(n.createTextNode(c)),i.push(v)}else i.push(n.createTextNode(f.toString()))}return i}function a(e,t,n){if(!e||e.nodeType!==d)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var o=t.ignoreTags;if("A"===e.tagName||s.contains(o,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case d:a(l,t,n);break;case m:var c=l.nodeValue,y=f(c);if(0===y.length||1===y.length&&y[0]instanceof u)break;var h=r(y,t,n);i(e,l,h),l=h[h.length-1]}l=l.nextSibling}return e}function o(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=new c(n),a(t,n,i)}function l(t){function n(e){return e=o.normalize(e),this.each(function(){o.helper(this,e,i)})}var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t.fn=t.fn||{};try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof t.fn.linkify&&(t.fn.linkify=n,t(i).ready(function(){t("[data-linkify]").each(function(){var e=t(this),n=e.data(),i=n.linkify,r=n.linkifyNlbr,a={attributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,className:n.linkifyClassName||n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},o="this"===i?e:e.find(i);o.linkify(a)})}))}t="default"in t?t["default"]:t;var f=n.tokenize,s=n.options,c=s.Options,u=n.parser.TOKENS.TEXT,d=1,m=3;o.helper=a,o.normalize=function(e){return new c(e)};try{!define&&(e.linkifyElement=o)}catch(y){}return l}(n,t);"function"!=typeof n.fn.linkify&&i(n)}(window,linkify,jQuery);]]> - 2&&void 0!==arguments[2]?arguments[2]:{},o=Object.create(t.prototype);for(var a in n)o[a]=n[a];return o.constructor=e,e.prototype=o,e}function o(t){t=t||{},this.defaultProtocol=t.defaultProtocol||h.defaultProtocol,this.events=t.events||h.events,this.format=t.format||h.format,this.formatHref=t.formatHref||h.formatHref,this.nl2br=t.nl2br||h.nl2br,this.tagName=t.tagName||h.tagName,this.target=t.target||h.target,this.validate=t.validate||h.validate,this.ignoreTags=[],this.attributes=t.attributes||t.linkAttributes||h.attributes,this.className=t.className||t.linkClass||h.className;for(var e=t.ignoreTags||h.ignoreTags,n=0;n=r)return[];for(;a1&&void 0!==arguments[1]?arguments[1]:null,n=this.next(new t(""));return n===this.defaultTransition?(n=new this.constructor(e),this.on(t,n)):e&&(n.T=e),n},test:function(t,e){return t instanceof e}}),b=l();b.prototype={toString:function(){return this.v+""}};var v=u(),y=u("@"),k=u(":"),w=u("."),j=u(),x=u(),z=u("\n"),O=u(),S=u("+"),N=u("#"),T=u(),A=u("mailto:"),L=u("?"),E=u("/"),C=u("_"),P=u(),R=u(),q=u(),H=u("{"),B=u("["),U=u("<"),M=u("("),D=u("}"),I=u("]"),K=u(">"),_=u(")"),G=u("&"),Y=Object.freeze({Base:b,DOMAIN:v,AT:y,COLON:k,DOT:w,PUNCTUATION:j,LOCALHOST:x,NL:z,NUM:O,PLUS:S,POUND:N,QUERY:L,PROTOCOL:T,MAILTO:A,SLASH:E,UNDERSCORE:C,SYM:P,TLD:R,WS:q,OPENBRACE:H,OPENBRACKET:B,OPENANGLEBRACKET:U,OPENPAREN:M,CLOSEBRACE:D,CLOSEBRACKET:I,CLOSEANGLEBRACKET:K,CLOSEPAREN:_,AMPERSAND:G}),Q="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),W="0123456789".split(""),X="0123456789abcdefghijklmnopqrstuvwxyz".split(""),Z=[" ","\f","\r","\t","\x0B"," "," ","᠎"],F=[],J=function(t){return new m(t)},V=J(),$=J(O),tt=J(v),et=J(),nt=J(q);V.on("@",J(y)).on(".",J(w)).on("+",J(S)).on("#",J(N)).on("?",J(L)).on("/",J(E)).on("_",J(C)).on(":",J(k)).on("{",J(H)).on("[",J(B)).on("<",J(U)).on("(",J(M)).on("}",J(D)).on("]",J(I)).on(">",J(K)).on(")",J(_)).on("&",J(G)).on([",",";","!",'"',"'"],J(j)),V.on("\n",J(z)).on(Z,nt),nt.on(Z,nt);for(var ot=0;ot=0&&u++,c++,a++;if(!(u<0)){a-=u,c-=u;var p=l.emit();o.push(new p(t.substr(a-c,c)))}}return o},yt=V,kt=Object.freeze({State:m,TOKENS:Y,run:vt,start:yt}),wt=l();wt.prototype={type:"token",isLink:!1,toString:function(){for(var t=[],e=0;e0&&void 0!==arguments[0]?arguments[0]:"http";return{type:this.type,value:this.toString(),href:this.toHref(t)}}};var jt=n(wt,l(),{type:"email",isLink:!0}),xt=n(wt,l(),{type:"email",isLink:!0,toHref:function(){this.v;return"mailto:"+this.toString()}}),zt=n(wt,l(),{type:"text"}),Ot=n(wt,l(),{type:"nl"}),St=n(wt,l(),{type:"url",isLink:!0,toHref:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"http",e=!1,n=!1,o=this.v,a=[],r=0;o[r]instanceof T;)e=!0,a.push(o[r].toString().toLowerCase()),r++;for(;o[r]instanceof E;)n=!0,a.push(o[r].toString()),r++;for(;p(o[r]);)a.push(o[r].toString().toLowerCase()),r++;for(;r=0&&u++,n++,c++;if(u<0)for(var p=n-c;p0&&(o.push(new zt(a)),a=[]),n-=u,c-=u;var h=l.emit();o.push(new h(t.slice(n-c,n)))}}return a.length>0&&o.push(new zt(a)),o},fe=Object.freeze({State:d,TOKENS:Nt,run:ge,start:At});Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)});var me=function(t){return ge(vt(t))},de=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=me(t),o=[],a=0;a1&&void 0!==arguments[1]?arguments[1]:null,n=me(t);return 1===n.length&&n[0].isLink&&(!e||n[0].type===e)};e.find=de,e.inherits=n,e.options=g,e.parser=fe,e.scanner=kt,e.test=be,e.tokenize=me}(self.linkify=self.linkify||{})}();]]> - =0;r--)e.insertBefore(n[r],i),i=n[r]}function r(e,t,n){for(var i=[],r=e,a=Array.isArray(r),o=0,r=a?r:r[Symbol.iterator]();;){var l;if(a){if(o>=r.length)break;l=r[o++]}else{if(o=r.next(),o.done)break;l=o.value}var f=l;if("nl"===f.type&&t.nl2br)i.push(n.createElement("br"));else if(f.isLink&&t.check(f)){var s=t.resolve(f),c=s.formatted,u=s.formattedHref,d=s.tagName,m=s.className,y=s.target,h=s.events,k=s.attributes,v=n.createElement(d);if(v.setAttribute("href",u),m&&v.setAttribute("class",m),y&&v.setAttribute("target",y),k)for(var g in k)v.setAttribute(g,k[g]);if(h)for(var b in h)v.addEventListener?v.addEventListener(b,h[b]):v.attachEvent&&v.attachEvent("on"+b,h[b]);v.appendChild(n.createTextNode(c)),i.push(v)}else i.push(n.createTextNode(f.toString()))}return i}function a(e,t,n){if(!e||e.nodeType!==d)throw new Error("Cannot linkify "+e+" - Invalid DOM Node type");var o=t.ignoreTags;if("A"===e.tagName||s.contains(o,e.tagName))return e;for(var l=e.firstChild;l;){switch(l.nodeType){case d:a(l,t,n);break;case m:var c=l.nodeValue,y=f(c);if(0===y.length||1===y.length&&y[0]instanceof u)break;var h=r(y,t,n);i(e,l,h),l=h[h.length-1]}l=l.nextSibling}return e}function o(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the third argument to linkifyElement.");return n=new c(n),a(t,n,i)}function l(t){function n(e){return e=o.normalize(e),this.each(function(){o.helper(this,e,i)})}var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t.fn=t.fn||{};try{i=i||document||e&&e.document||global&&global.document}catch(r){}if(!i)throw new Error("Cannot find document implementation. If you are in a non-browser environment like Node.js, pass the document implementation as the second argument to linkify/jquery");"function"!=typeof t.fn.linkify&&(t.fn.linkify=n,t(i).ready(function(){t("[data-linkify]").each(function(){var e=t(this),n=e.data(),i=n.linkify,r=n.linkifyNlbr,a={attributes:n.linkifyAttributes,defaultProtocol:n.linkifyDefaultProtocol,events:n.linkifyEvents,format:n.linkifyFormat,formatHref:n.linkifyFormatHref,nl2br:!!r&&0!==r&&"false"!==r,tagName:n.linkifyTagname,target:n.linkifyTarget,className:n.linkifyClassName||n.linkifyLinkclass,validate:n.linkifyValidate,ignoreTags:n.linkifyIgnoreTags},o="this"===i?e:e.find(i);o.linkify(a)})}))}t="default"in t?t["default"]:t;var f=n.tokenize,s=n.options,c=s.Options,u=n.parser.TOKENS.TEXT,d=1,m=3;o.helper=a,o.normalize=function(e){return new c(e)};try{!define&&(e.linkifyElement=o)}catch(y){}return l}(n,t);"function"!=typeof n.fn.linkify&&i(n)}(window,linkify,jQuery);]]> + 2&&void 0!==arguments[2]?arguments[2]:{},o=Object.create(t.prototype);for(var a in n)o[a]=n[a];return o.constructor=e,e.prototype=o,e}function o(t){t=t||{},this.defaultProtocol=t.defaultProtocol||h.defaultProtocol,this.events=t.events||h.events,this.format=t.format||h.format,this.formatHref=t.formatHref||h.formatHref,this.nl2br=t.nl2br||h.nl2br,this.tagName=t.tagName||h.tagName,this.target=t.target||h.target,this.validate=t.validate||h.validate,this.ignoreTags=[],this.attributes=t.attributes||t.linkAttributes||h.attributes,this.className=t.className||t.linkClass||h.className;for(var e=t.ignoreTags||h.ignoreTags,n=0;n=r)return[];for(;a1&&void 0!==arguments[1]?arguments[1]:null,n=this.next(new t(""));return n===this.defaultTransition?(n=new this.constructor(e),this.on(t,n)):e&&(n.T=e),n},test:function(t,e){return t instanceof e}}),b=l();b.prototype={toString:function(){return this.v+""}};var v=u(),y=u("@"),k=u(":"),w=u("."),j=u(),x=u(),z=u("\n"),O=u(),S=u("+"),N=u("#"),T=u(),A=u("mailto:"),L=u("?"),E=u("/"),C=u("_"),P=u(),R=u(),q=u(),H=u("{"),B=u("["),U=u("<"),M=u("("),D=u("}"),I=u("]"),K=u(">"),_=u(")"),G=u("&"),Y=Object.freeze({Base:b,DOMAIN:v,AT:y,COLON:k,DOT:w,PUNCTUATION:j,LOCALHOST:x,NL:z,NUM:O,PLUS:S,POUND:N,QUERY:L,PROTOCOL:T,MAILTO:A,SLASH:E,UNDERSCORE:C,SYM:P,TLD:R,WS:q,OPENBRACE:H,OPENBRACKET:B,OPENANGLEBRACKET:U,OPENPAREN:M,CLOSEBRACE:D,CLOSEBRACKET:I,CLOSEANGLEBRACKET:K,CLOSEPAREN:_,AMPERSAND:G}),Q="aaa|aarp|abb|abbott|abogado|ac|academy|accenture|accountant|accountants|aco|active|actor|ad|adac|ads|adult|ae|aeg|aero|af|afl|ag|agency|ai|aig|airforce|airtel|al|alibaba|alipay|allfinanz|alsace|am|amica|amsterdam|an|analytics|android|ao|apartments|app|apple|aq|aquarelle|ar|aramco|archi|army|arpa|arte|as|asia|associates|at|attorney|au|auction|audi|audio|author|auto|autos|avianca|aw|ax|axa|az|azure|ba|baidu|band|bank|bar|barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bb|bbc|bbva|bcg|bcn|bd|be|beats|beer|bentley|berlin|best|bet|bf|bg|bh|bharti|bi|bible|bid|bike|bing|bingo|bio|biz|bj|black|blackfriday|bloomberg|blue|bm|bms|bmw|bn|bnl|bnpparibas|bo|boats|boehringer|bom|bond|boo|book|boots|bosch|bostik|bot|boutique|br|bradesco|bridgestone|broadway|broker|brother|brussels|bs|bt|budapest|bugatti|build|builders|business|buy|buzz|bv|bw|by|bz|bzh|ca|cab|cafe|cal|call|camera|camp|cancerresearch|canon|capetown|capital|car|caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|cc|cd|ceb|center|ceo|cern|cf|cfa|cfd|cg|ch|chanel|channel|chase|chat|cheap|chloe|christmas|chrome|church|ci|cipriani|circle|cisco|citic|city|cityeats|ck|cl|claims|cleaning|click|clinic|clinique|clothing|cloud|club|clubmed|cm|cn|co|coach|codes|coffee|college|cologne|com|commbank|community|company|compare|computer|comsec|condos|construction|consulting|contact|contractors|cooking|cool|coop|corsica|country|coupon|coupons|courses|cr|credit|creditcard|creditunion|cricket|crown|crs|cruises|csc|cu|cuisinella|cv|cw|cx|cy|cymru|cyou|cz|dabur|dad|dance|date|dating|datsun|day|dclk|de|dealer|deals|degree|delivery|dell|deloitte|delta|democrat|dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dj|dk|dm|dnp|do|docs|dog|doha|domains|download|drive|dubai|durban|dvag|dz|earth|eat|ec|edeka|edu|education|ee|eg|email|emerck|energy|engineer|engineering|enterprises|epson|equipment|er|erni|es|esq|estate|et|eu|eurovision|eus|events|everbank|exchange|expert|exposed|express|fage|fail|fairwinds|faith|family|fan|fans|farm|fashion|fast|feedback|ferrero|fi|film|final|finance|financial|firestone|firmdale|fish|fishing|fit|fitness|fj|fk|flickr|flights|florist|flowers|flsmidth|fly|fm|fo|foo|football|ford|forex|forsale|forum|foundation|fox|fr|fresenius|frl|frogans|frontier|fund|furniture|futbol|fyi|ga|gal|gallery|gallup|game|garden|gb|gbiz|gd|gdn|ge|gea|gent|genting|gf|gg|ggee|gh|gi|gift|gifts|gives|giving|gl|glass|gle|global|globo|gm|gmail|gmbh|gmo|gmx|gn|gold|goldpoint|golf|goo|goog|google|gop|got|gov|gp|gq|gr|grainger|graphics|gratis|green|gripe|group|gs|gt|gu|gucci|guge|guide|guitars|guru|gw|gy|hamburg|hangout|haus|hdfcbank|health|healthcare|help|helsinki|here|hermes|hiphop|hitachi|hiv|hk|hm|hn|hockey|holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hr|hsbc|ht|hu|hyundai|ibm|icbc|ice|icu|id|ie|ifm|iinet|il|im|immo|immobilien|in|industries|infiniti|info|ing|ink|institute|insurance|insure|int|international|investments|io|ipiranga|iq|ir|irish|is|iselect|ist|istanbul|it|itau|iwc|jaguar|java|jcb|je|jetzt|jewelry|jlc|jll|jm|jmp|jo|jobs|joburg|jot|joy|jp|jpmorgan|jprs|juegos|kaufen|kddi|ke|kerryhotels|kerrylogistics|kerryproperties|kfh|kg|kh|ki|kia|kim|kinder|kitchen|kiwi|km|kn|koeln|komatsu|kp|kpn|kr|krd|kred|kuokgroup|kw|ky|kyoto|kz|la|lacaixa|lamborghini|lamer|lancaster|land|landrover|lanxess|lasalle|lat|latrobe|law|lawyer|lb|lc|lds|lease|leclerc|legal|lexus|lgbt|li|liaison|lidl|life|lifeinsurance|lifestyle|lighting|like|limited|limo|lincoln|linde|link|live|living|lixil|lk|loan|loans|local|locus|lol|london|lotte|lotto|love|lr|ls|lt|ltd|ltda|lu|lupin|luxe|luxury|lv|ly|ma|madrid|maif|maison|makeup|man|management|mango|market|marketing|markets|marriott|mba|mc|md|me|med|media|meet|melbourne|meme|memorial|men|menu|meo|mg|mh|miami|microsoft|mil|mini|mk|ml|mm|mma|mn|mo|mobi|mobily|moda|moe|moi|mom|monash|money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mp|mq|mr|ms|mt|mtn|mtpc|mtr|mu|museum|mutuelle|mv|mw|mx|my|mz|na|nadex|nagoya|name|natura|navy|nc|ne|nec|net|netbank|network|neustar|new|news|nexus|nf|ng|ngo|nhk|ni|nico|nikon|ninja|nissan|nl|no|nokia|norton|nowruz|np|nr|nra|nrw|ntt|nu|nyc|nz|obi|office|okinawa|om|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|origins|osaka|otsuka|ovh|pa|page|pamperedchef|panerai|paris|pars|partners|parts|party|passagens|pe|pet|pf|pg|ph|pharmacy|philips|photo|photography|photos|physio|piaget|pics|pictet|pictures|pid|pin|ping|pink|pizza|pk|pl|place|play|playstation|plumbing|plus|pm|pn|pohl|poker|porn|post|pr|praxi|press|pro|prod|productions|prof|promo|properties|property|protection|ps|pt|pub|pw|pwc|py|qa|qpon|quebec|quest|racing|re|read|realtor|realty|recipes|red|redstone|redumbrella|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rexroth|rich|ricoh|rio|rip|ro|rocher|rocks|rodeo|room|rs|rsvp|ru|ruhr|run|rw|rwe|ryukyu|sa|saarland|safe|safety|sakura|sale|salon|samsung|sandvik|sandvikcoromant|sanofi|sap|sapo|sarl|sas|saxo|sb|sbs|sc|sca|scb|schaeffler|schmidt|scholarships|school|schule|schwarz|science|scor|scot|sd|se|seat|security|seek|select|sener|services|seven|sew|sex|sexy|sfr|sg|sh|sharp|shell|shia|shiksha|shoes|show|shriram|si|singles|site|sj|sk|ski|skin|sky|skype|sl|sm|smile|sn|sncf|so|soccer|social|softbank|software|sohu|solar|solutions|song|sony|soy|space|spiegel|spot|spreadbetting|sr|srl|st|stada|star|starhub|statefarm|statoil|stc|stcgroup|stockholm|storage|store|studio|study|style|su|sucks|supplies|supply|support|surf|surgery|suzuki|sv|swatch|swiss|sx|sy|sydney|symantec|systems|sz|tab|taipei|taobao|tatamotors|tatar|tattoo|tax|taxi|tc|tci|td|team|tech|technology|tel|telecity|telefonica|temasek|tennis|tf|tg|th|thd|theater|theatre|tickets|tienda|tiffany|tips|tires|tirol|tj|tk|tl|tm|tmall|tn|to|today|tokyo|tools|top|toray|toshiba|total|tours|town|toyota|toys|tp|tr|trade|trading|training|travel|travelers|travelersinsurance|trust|trv|tt|tube|tui|tunes|tushu|tv|tvs|tw|tz|ua|ubs|ug|uk|unicom|university|uno|uol|us|uy|uz|va|vacations|vana|vc|ve|vegas|ventures|verisign|versicherung|vet|vg|vi|viajes|video|viking|villas|vin|vip|virgin|vision|vista|vistaprint|viva|vlaanderen|vn|vodka|volkswagen|vote|voting|voto|voyage|vu|vuelos|wales|walter|wang|wanggou|watch|watches|weather|weatherchannel|webcam|weber|website|wed|wedding|weir|wf|whoswho|wien|wiki|williamhill|win|windows|wine|wme|wolterskluwer|work|works|world|ws|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|yahoo|yamaxun|yandex|ye|yodobashi|yoga|yokohama|youtube|yt|za|zara|zero|zip|zm|zone|zuerich|zw".split("|"),W="0123456789".split(""),X="0123456789abcdefghijklmnopqrstuvwxyz".split(""),Z=[" ","\f","\r","\t","\x0B"," "," ","᠎"],F=[],J=function(t){return new m(t)},V=J(),$=J(O),tt=J(v),et=J(),nt=J(q);V.on("@",J(y)).on(".",J(w)).on("+",J(S)).on("#",J(N)).on("?",J(L)).on("/",J(E)).on("_",J(C)).on(":",J(k)).on("{",J(H)).on("[",J(B)).on("<",J(U)).on("(",J(M)).on("}",J(D)).on("]",J(I)).on(">",J(K)).on(")",J(_)).on("&",J(G)).on([",",";","!",'"',"'"],J(j)),V.on("\n",J(z)).on(Z,nt),nt.on(Z,nt);for(var ot=0;ot=0&&u++,c++,a++;if(!(u<0)){a-=u,c-=u;var p=l.emit();o.push(new p(t.substr(a-c,c)))}}return o},yt=V,kt=Object.freeze({State:m,TOKENS:Y,run:vt,start:yt}),wt=l();wt.prototype={type:"token",isLink:!1,toString:function(){for(var t=[],e=0;e0&&void 0!==arguments[0]?arguments[0]:"http";return{type:this.type,value:this.toString(),href:this.toHref(t)}}};var jt=n(wt,l(),{type:"email",isLink:!0}),xt=n(wt,l(),{type:"email",isLink:!0,toHref:function(){this.v;return"mailto:"+this.toString()}}),zt=n(wt,l(),{type:"text"}),Ot=n(wt,l(),{type:"nl"}),St=n(wt,l(),{type:"url",isLink:!0,toHref:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"http",e=!1,n=!1,o=this.v,a=[],r=0;o[r]instanceof T;)e=!0,a.push(o[r].toString().toLowerCase()),r++;for(;o[r]instanceof E;)n=!0,a.push(o[r].toString()),r++;for(;p(o[r]);)a.push(o[r].toString().toLowerCase()),r++;for(;r=0&&u++,n++,c++;if(u<0)for(var p=n-c;p0&&(o.push(new zt(a)),a=[]),n-=u,c-=u;var h=l.emit();o.push(new h(t.slice(n-c,n)))}}return a.length>0&&o.push(new zt(a)),o},fe=Object.freeze({State:d,TOKENS:Nt,run:ge,start:At});Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)});var me=function(t){return ge(vt(t))},de=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=me(t),o=[],a=0;a1&&void 0!==arguments[1]?arguments[1]:null,n=me(t);return 1===n.length&&n[0].isLink&&(!e||n[0].type===e)};e.find=de,e.inherits=n,e.options=g,e.parser=fe,e.scanner=kt,e.test=be,e.tokenize=me}(self.linkify=self.linkify||{})}();]]> + - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -54768,7 +54874,7 @@ var escapeRegExp; } }); }(jQuery, _)); - - - ":">",'"':""","'":"'","/":"/","`":"`","=":"="};function escapeHtml(string){return String(string).replace(/[&<>"'`=\/]/g,function fromEntityMap(s){return entityMap[s]})}var whiteRe=/\s*/;var spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var tagRe=/#|\^|\/|>|\{|&|=|!/;function parseTemplate(template,tags){if(!template)return[];var lineHasNonSpace=false;var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;var indentation="";var tagIndex=0;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tagsToCompile){if(typeof tagsToCompile==="string")tagsToCompile=tagsToCompile.split(spaceRe,2);if(!isArray(tagsToCompile)||tagsToCompile.length!==2)throw new Error("Invalid tags: "+tagsToCompile);openingTagRe=new RegExp(escapeRegExp(tagsToCompile[0])+"\\s*");closingTagRe=new RegExp("\\s*"+escapeRegExp(tagsToCompile[1]));closingCurlyRe=new RegExp("\\s*"+escapeRegExp("}"+tagsToCompile[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i"){token=[type,value,start,scanner.pos,indentation,tagIndex,lineHasNonSpace]}else{token=[type,value,start,scanner.pos]}tagIndex++;tokens.push(token);if(type==="#"||type==="^"){sections.push(token)}else if(type==="/"){openSection=sections.pop();if(!openSection)throw new Error('Unopened section "'+value+'" at '+start);if(openSection[1]!==value)throw new Error('Unclosed section "'+openSection[1]+'" at '+start)}else if(type==="name"||type==="{"||type==="&"){nonSpace=true}else if(type==="="){compileTags(value)}}stripSpace();openSection=sections.pop();if(openSection)throw new Error('Unclosed section "'+openSection[1]+'" at '+scanner.pos);return nestTokens(squashTokens(tokens))}function squashTokens(tokens){var squashedTokens=[];var token,lastToken;for(var i=0,numTokens=tokens.length;i0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return nestedTokens}function Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function eos(){return this.tail===""};Scanner.prototype.scan=function scan(re){var match=this.tail.match(re);if(!match||match.index!==0)return"";var string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return string};Scanner.prototype.scanUntil=function scanUntil(re){var index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail="";break;case 0:match="";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return match};function Context(view,parentContext){this.view=view;this.cache={".":this.view};this.parent=parentContext}Context.prototype.push=function push(view){return new Context(view,this)};Context.prototype.lookup=function lookup(name){var cache=this.cache;var value;if(cache.hasOwnProperty(name)){value=cache[name]}else{var context=this,intermediateValue,names,index,lookupHit=false;while(context){if(name.indexOf(".")>0){intermediateValue=context.view;names=name.split(".");index=0;while(intermediateValue!=null&&index")value=this.renderPartial(token,context,partials,config);else if(symbol==="&")value=this.unescapedValue(token,context);else if(symbol==="name")value=this.escapedValue(token,context,config);else if(symbol==="text")value=this.rawValue(token);if(value!==undefined)buffer+=value}return buffer};Writer.prototype.renderSection=function renderSection(token,context,partials,originalTemplate,config){var self=this;var buffer="";var value=context.lookup(token[1]);function subRender(template){return self.render(template,context,partials,config)}if(!value)return;if(isArray(value)){for(var j=0,valueLength=value.length;j0||!lineHasNonSpace)){partialByNl[i]=filteredIndentation+partialByNl[i]}}return partialByNl.join("\n")};Writer.prototype.renderPartial=function renderPartial(token,context,partials,config){if(!partials)return;var tags=this.getConfigTags(config);var value=isFunction(partials)?partials(token[1]):partials[token[1]];if(value!=null){var lineHasNonSpace=token[6];var tagIndex=token[5];var indentation=token[4];var indentedValue=value;if(tagIndex==0&&indentation){indentedValue=this.indentPartial(value,indentation,lineHasNonSpace)}var tokens=this.parse(indentedValue,tags);return this.renderTokens(tokens,context,partials,indentedValue,config)}};Writer.prototype.unescapedValue=function unescapedValue(token,context){var value=context.lookup(token[1]);if(value!=null)return value};Writer.prototype.escapedValue=function escapedValue(token,context,config){var escape=this.getConfigEscape(config)||mustache.escape;var value=context.lookup(token[1]);if(value!=null)return typeof value==="number"&&escape===mustache.escape?String(value):escape(value)};Writer.prototype.rawValue=function rawValue(token){return token[1]};Writer.prototype.getConfigTags=function getConfigTags(config){if(isArray(config)){return config}else if(config&&typeof config==="object"){return config.tags}else{return undefined}};Writer.prototype.getConfigEscape=function getConfigEscape(config){if(config&&typeof config==="object"&&!isArray(config)){return config.escape}else{return undefined}};var mustache={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:undefined,escape:undefined,parse:undefined,render:undefined,Scanner:undefined,Context:undefined,Writer:undefined,set templateCache(cache){defaultWriter.templateCache=cache},get templateCache(){return defaultWriter.templateCache}};var defaultWriter=new Writer;mustache.clearCache=function clearCache(){return defaultWriter.clearCache()};mustache.parse=function parse(template,tags){return defaultWriter.parse(template,tags)};mustache.render=function render(template,view,partials,config){if(typeof template!=="string"){throw new TypeError('Invalid template! Template should be a "string" '+'but "'+typeStr(template)+'" was given as the first '+"argument for mustache#render(template, view, partials)")}return defaultWriter.render(template,view,partials,config)};mustache.escape=escapeHtml;mustache.Scanner=Scanner;mustache.Context=Context;mustache.Writer=Writer;return mustache});]]> - \ "); @@ -55087,7 +55193,7 @@ ips.templates.set('support.ticket.supportSummary', " \ {{#lang}}health_ticket_beforeproceeding{{/lang}}\
\ ");]]> - \ {{{contents}}}\ \ @@ -55104,7 +55210,7 @@ ips.templates.set( 'templates.customizationMedia.noSearchResults', "\ {{#lang}}mediaNoResults{{/lang}}\ \ ");]]> -
@@ -55131,7 +55237,7 @@ ips.templates.set('dashboard.menuItem', ` {{name}} `);]]> - \
\ @@ -55144,7 +55250,7 @@ ips.templates.set( 'moderatorPermissions.checkUncheckAll', "\
\ \ ");]]>
- \ \ {{#lang}}menuManagerNewItem{{/lang}}\ @@ -55178,7 +55284,7 @@ ips.templates.set( 'menuManager.temporaryMenuItem', "\ ips.templates.set( 'menuManager.emptyList', "\
  • {{#lang}}menuManagerEmptyList{{/lang}}
  • \ ");]]>
    - {{#lang}}editorSpoiler{{/lang}}
    {{{contents}}}
    "); ips.templates.set('core.editor.spoilerHeader', " \ \ -  \ {{#lang}}spoilerClickToReveal{{/lang}}\ \ "); @@ -56438,7 +56543,7 @@ ips.templates.set('ips.ui.controls.cannot_load', ` return ips.getString('ips.ui.controls.cannot_load') } })]]>
    - \ \ \ @@ -56457,7 +56562,7 @@ ips.templates.set('club.request.decline', "\ ips.templates.set('club.menu.dragHandle', "\  \ ");]]> - \ \ @@ -56468,7 +56573,7 @@ ips.templates.set('messages.view.placeholder', " \ ips.templates.set('messages.main.folderMenu', "\
  • {{name}} {{count}}
  • \ ");]]>
    - @@ -56487,7 +56592,7 @@ ips.templates.set('core.streams.noMore', ` ips.templates.set('core.streams.loadMore', ` {{#lang}}loadNewActivity{{/lang}} `);]]> - \ {{/hasNotifications}}\ @@ -56496,7 +56601,7 @@ ips.templates.set('core.streams.loadMore', ` {{/hasNotifications}}\ {{text}}\ ");]]> - {{title}}\ "); @@ -56642,7 +56747,7 @@ ips.templates.set('vse.colorizer.panel', " \ \ \ ");]]> - - - - /** + /** * Invision Community * (c) Invision Power Services, Inc. - https://www.invisioncommunity.com * @@ -57338,7 +57443,7 @@ ips.templates.set('vse.colorizer.panel', " \ }; }); }(jQuery, _)); - - =0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e":">",'"':""","'":"'","`":"`"},Cn=Ln($n),Kn=Ln(_n($n)),Jn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Gn=/(.)^/,Hn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Qn=/\\|'|\r|\n|\u2028|\u2029/g;function Xn(n){return"\\"+Hn[n]}var Yn=/^\s*(\w|\$)+\s*$/;var Zn=0;function nr(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var rr=j((function(n,r){var t=rr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a1)ur(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var lr=rr(cr,2);function sr(n,r,t){r=qn(r,t);for(var e,u=nn(n),o=0,i=u.length;o0?0:u-1;o>=0&&o0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a=3;return r(n,Fn(t,u,4),e,o)}}var Ar=wr(1),xr=wr(-1);function Sr(n,r,t){var e=[];return r=qn(r,t),jr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Or(n,r,t){r=qn(r,t);for(var e=!er(n)&&nn(n),u=(e||n).length,o=0;o=0}var Br=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Nn(r),e=r.slice(0,-1),r=r[r.length-1]),_r(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=In(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Nr(n,r){return _r(n,Rn(r))}function Ir(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;ao&&(o=e);else r=qn(r,t),jr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}function Tr(n,r,t){if(null==r||t)return er(n)||(n=jn(n)),n[Wn(n.length-1)];var e=er(n)?En(n):jn(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i1&&(e=Fn(e,r[1])),r=an(n)):(e=qr,r=ur(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u1&&(t=r[1])):(r=_r(ur(r,!1,!1),String),e=function(n,t){return!Er(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=ur(r,!0,!0),Sr(n,(function(n){return!Er(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=qn(t,e));for(var u=[],o=[],i=0,a=Y(n);ir?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=zn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=zn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return rr(r,n)},negate:fr,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}},before:cr,once:lr,findKey:sr,findIndex:vr,findLastIndex:hr,sortedIndex:yr,indexOf:gr,lastIndexOf:br,find:mr,detect:mr,findWhere:function(n,r){return mr(n,Dn(r))},each:jr,forEach:jr,map:_r,collect:_r,reduce:Ar,foldl:Ar,inject:Ar,reduceRight:xr,foldr:xr,filter:Sr,select:Sr,reject:function(n,r,t){return Sr(n,fr(qn(r)),t)},every:Or,all:Or,some:Mr,any:Mr,contains:Er,includes:Er,include:Er,invoke:Br,pluck:Nr,where:function(n,r){return Sr(n,Dn(r))},max:Ir,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=er(n)?n:jn(n)).length;ae||void 0===t)return 1;if(t - diff --git a/applications/core/data/lang.xml b/applications/core/data/lang.xml index e7fd4428..b45fc818 100644 --- a/applications/core/data/lang.xml +++ b/applications/core/data/lang.xml @@ -1,6 +1,6 @@ - + System a personal conversation a message in a personal conversation @@ -8278,6 +8278,7 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa Active Inactive The reply options have been removed as your messenger is currently disabled. + Can't dismiss this alert. Send an Alert to %s Alert Title Alert Content @@ -9614,6 +9615,7 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa Content Listener Commerce Package Listener Node Listener + Club Listener Database Schema Versions Hooks diff --git a/applications/core/data/theme.xml b/applications/core/data/theme.xml index 1780ef90..673e0ff2 100644 --- a/applications/core/data/theme.xml +++ b/applications/core/data/theme.xml @@ -582,11 +582,11 @@ {$alert->content|raw} - {{if $alert->reply === 2 and $alert->author()->member_id and ! $alert->anonymous and ! member.canUseMessenger()}} + {{if $alert->reply === \IPS\core\Alerts\Alert::REPLY_REQUIRED and $alert->author()->member_id and ! $alert->anonymous and ! member.canUseMessenger()}}
    {lang="alert_must_reply_modal_but_no_messenger" sprintf="$alert->author()->name"}
    - {{elseif $alert->reply == 2 and $alert->author()->member_id and ! $alert->anonymous}} + {{elseif $alert->reply == \IPS\core\Alerts\Alert::REPLY_REQUIRED and $alert->author()->member_id and ! $alert->anonymous}}
    {lang="alert_must_reply_modal" sprintf="$alert->author()->name"}
    @@ -598,7 +598,7 @@ {{endif}}
    - {{if ( $alert->reply !== 2 or !$alert->author()->member_id ) or ( $alert->reply === 2 and ! member.canUseMessenger() ) }} + {{if ( $alert->reply !== \IPS\core\Alerts\Alert::REPLY_REQUIRED or !$alert->author()->member_id ) or ( $alert->reply === \IPS\core\Alerts\Alert::REPLY_REQUIRED and ! member.canUseMessenger() ) }} id}" seoTemplate="alert" csrf="true"}" data-role="dismiss">{lang="alert_dismiss"} {{endif}} {{if !$alert->anonymous and $alert->reply and $alert->author()->member_id and member.canUseMessenger()}} @@ -3764,10 +3764,9 @@
    {lang="template_variables_save_warning_msg"}
    -

    +

    {lang="theme_template_variables_info"}

    -
    @@ -3781,10 +3780,9 @@
    -

    +

    {lang="theme_css_attributes"}

    -
    @@ -6686,18 +6684,18 @@ {{endif}} {{if \count( $form->elements ) < 2}} {{if \IPS\Member::loggedIn()->language()->checkKeyExists( 'profile_step_text_' . $step->id ) and \IPS\Member::loggedIn()->language()->words[ 'profile_step_text_' . $step->id ]}} -
    +
    {lang="profile_step_text_{$step->id}"}
    {{endif}} -
    +
    {{if !empty( $sidebar )}}
    {{endif}} -
      +
        {{foreach $elements as $collection}} {{foreach $collection as $input}} {{if \is_object( $input ) }} @@ -6718,7 +6716,7 @@
    {{else}} {{if \IPS\Member::loggedIn()->language()->checkKeyExists( 'profile_step_text_' . $step->id ) and \IPS\Member::loggedIn()->language()->words[ 'profile_step_text_' . $step->id ]}} -
    +
    {lang="profile_step_text_{$step->id}"}
    @@ -6734,10 +6732,10 @@
    {template="tabScrollers" app="core" group="global" location="global"} -
    +
    {{foreach $elements as $name => $content}}
    -
      +
        {{foreach $content as $input}} {{if \is_object( $input ) }} {$input->rowHtml($form)|raw} @@ -9789,28 +9787,28 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $comment->getVi
        {lang="no_results"}
    -
      -
    •   {lang="change_details"}
    • +
        +
      • {lang="change_details"}
      • -   {lang="theme"} + {lang="theme"}
        • - {lang="acptheme_os_preference"} +
        • - {lang="acptheme_light"} +
        • - {lang="acptheme_dark"} +
      • {{$languages = \IPS\Lang::roots();}} {{if \count( $languages ) > 1}}
      • -   {lang='acp_language'} + {lang='acp_language'}
          {{foreach $languages as $id => $lang }}
        • @@ -9821,7 +9819,7 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $comment->getVi
        • {{endif}}

        • -
        •   {lang="sign_out"}
        • +
        • {lang="sign_out"}
        {{if isset( \IPS\Output::i()->sidebar['mobilenav'] )}}{expression="\IPS\Output::i()->sidebar['mobilenav']" raw="true"}{{endif}} @@ -10183,6 +10181,7 @@ data-ips-scheme='{theme="scheme"}' data-ips-scheme-active='{theme="scheme"}' data-ips-scheme-default='{theme="var.set__i-default-scheme"}' data-ips-theme="{theme="id"}" +data-ips-scheme-toggle="{{if cssvar.set__i-change-scheme == "1"}}true{{else}}false{{endif}}" {{if \IPS\Member::loggedIn()->member_id }} data-ips-member='{expression="member.member_id"}' @@ -12973,7 +12972,7 @@ setTimeout( function() { {{else}} {$lang} {{endif}}]]> - @@ -25807,7 +25798,7 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
    {{if $error}} -
    {lang="$error"}
    +
    {lang="$error"}
    {{endif}} {{$usernamePasswordMethods = $login->usernamePasswordMethods();}} {{$buttonMethods = $login->buttonMethods();}} @@ -25923,17 +25914,19 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie ]]> @@ -26045,7 +26038,7 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
    ]]> -