Article Release Notes for Community 12

Version 12.0.1.15778

April 7, 2021

  • NOTE: There is an database patch in this release related to user content views that may take an extended period of time to run. The running time is related to the number of views in your community.
  • TE-9679 - Added option to only show content within X days in 'More Content' widget
  • TE-14185 - Added auto-generated meta descriptions to forum threads, ideas, blog posts, and wiki pages
  • TE-15730 - Now automatically adding a vote for idea when a user creates a new one
  • TE-15760 - Added new Poll Quote embeddable
  • TE-15869 - Updated forum thread-to-idea conversion processing text/description
  • TE-16079 - Fixed calendar update notification to username of the editing user instead of the original creator
  • TE-16082 - Enhancements to ContentViews API and Services
  • TE-16132 - Increase timeout when flagging application search re-indexing
  • TE-16196 - Fixed a case where users with View Site Reports gets exception viewing Content report due to insufficient permissions elsewhere
  • TE-16198 - Fixed error in editor that caused the Format > Formats > Alignment menu to be misaligned due to mismatched configuration
  • TE-16199 - Adjusted glowPopUpPanel to focus target element instead of previously active on hide if active outside viewport
  • TE-16213 - Updated url redirection logic when using SSO and creating/updates idea statuses
  • TE-16224 - Improved REST exception details when multiple exceptions exist
  • TE-16274 - Updated article TOC widget to adjust width of wide images, videos, embeds, and iframes to fit next to the TOC when the TOC is configured to be rendered inline
  • TE-16307 - Added additional audit entries
  • TE-16348 - Fixed potential overlapping issue when rendering articles result in SERP page
  • TE-16349 - Corrected caching of subscriptions when using the mute URL
  • TE-16351 - Updated saving logic to ensure avatar information is saved if its specified during group creation
  • TE-16353 - Updates to ensure consistency between use of UserId and name in exports
  • TE-16358 - Updates 'Related Content' widget to store GUIDs instead of strings for included types
  • TE-16359 - Fixed possible arithmetic overflow when calculating average response time when there are threads with significant duration before first response
  • TE-16371 - Corrected handling of 0 (unlimited) for users without override validation when validating file upload sizes
  • TE-16377 - Updated inline dynamic configuration documentation to load dynamic configuration property scopes dynamically
  • TE-16385 - Added option to restore an article collection category in management panel
  • TE-16386 - Added support for reassigning a category on delete (if the category is committed)
  • TE-16387 - Added public APIs to restore Articles, Article Versions, Categories and Article Collections
  • TE-16388 - Updates to ensure configuration property rules are processed both through the editing experience and on commit when editing widgets and themes
  • TE-16389 - Reporting ETL performance improvements when processing content views
  • TE-16394 - Improvements to top/best responses rendering
  • TE-16401 - Improved pencil icon rendering in reduced browser size situations to ensure system notification 'close' options does not overlap
  • TE-16405 - Fixed issue that can occur in reporting ETL if there are deleted calendars and events
  • TE-16407 - Removed unnecessary exception logging when using Google OAuth when unused key is not found
  • TE-16410 - Updated date and time renderings to use <time> element
  • TE-16412 - Increased timeout in activity story expiration job
  • TE-16416 - Fixed issue with IncludeSubContainers property not being honored when using the TaggedContent list APIs
  • TE-16417 - Updated styling on download link when viewing web preview files
  • TE-16418 - Fixed issue rendering votes counts in Idea Management Panel
  • TE-16424 - Updated version of log4Net
  • TE-16438 - Added required field validation to Prefix field in Article Options Panel
  • TE-16452 - Updated article management panel initialization to avoid a potential race condition on initialization
  • TE-16459 - Update group request notification recipient list to include users that can manage membership in addition to owners
  • TE-16460 - Removed non-applicable or used 'Current Group' configuration option from Auto Create User Blog Plugin
  • TE-16462 - Updated image resizing within the editor to adjust the HTML to use a properly resized version of the image and now forcing 2x image scaling for images embedded within content
  • TE-16473 - New database index than can help when deleting a thread with lots of nested replies
  • TE-16475 - Fixed invalid references in Site Leaderboards Panel
  • TE-16478 - Added 'class' and 'id' content filtering options
  • TE-16481 - Marked INodePermissions API obsolete in favor of v2 IPermissions
  • TE-16509 - Fixed 'Sort by Name' sorting in 'Article - Browse Collections'
  • TE-16514 - Updated temporary wiki page redirects to permanent
  • TE-16516 - Removed 'Low Quality' configuration and cleanup search history job since its no longer needed
  • TE-16517 - Updated Vimeo File Viewer to handle their updated url formats
  • TE-16518 - Improved title encoding logic to prevent double encoding
  • TE-16567 - Fixed issue that may occur when syncing search synonyms if there are duplicates in the list
  • TE-16582 - Updates to web preview content generation
  • TE-16587 - Ensure OpenGraph title is set on content if missing
  • TE-16614 - Updated logic when manually re-scheduling next execution time on jobs to use user's current date as reference instead of UTC
  • TE-16630 - Fixed SQL issue that may occur when deleting content with views
  • TE-16638 - Improvements to exception handling on page handler logic
  • TE-16651 - Fixed potential permission issue sending notifications when users does not have application/content subscription listing permission

Version 12.0.0.15277

February 25, 2021

  • TE-16204 - Fixed issue with articles helpfulness entities not being serializable for distributed cache
  • TE-16457 - Fixed issuew with Embeddable "Category" field not being saved
  • TE-16464 - Fixed issue with group owners not being able to attache remote files to a blog post if the "Attach Urls" permission was originally disabled
  • TE-16476 - Fixed issue where a member cannot moderate calendar events if they had application level granted but not group level
  • TE-16477 - Removed extra "No results" in ideas management panel when results exist
  • TE-16479 - Custom navigation widget updates to correct configuration issues
  • TE-16485 - Swipe gesture no longer opening context shell on mobile
  • TE-16507 - Added Articles to user export
  • TE-16508 - Fixed article tag urls incorrectly reporting validation exceptions
  • TE-16510 - Links to non-existent ideas now correctly renders 404 response
  • TE-16519 - Updates to identify anonymous user for anonymous article feedback and correct hiding "previous feedback" porting of negative feedback modal to check again the member previous negative feedback
  • TE-16553 - Updates to article helpfulness and delete APIs

Version 12.0.0.15013

February 2, 2021

New

  • Article Collections and Articles
    • Customizable feedback reasons
    • Get feedback from members
    • Optional feedback resolution when publishing
    • Scheduled publish/unpublish times
    • Categories to organize your content
    • Publish Groups to organize and publish/unpublish sets of articles together
    • Review workflow to require approvals before publishing
    • Version history
    • Capture forum thread content to a new article
    • Featured content support
    • Helpfulness
    • Custom theme support
    • Support for migrating existing wikis to articles
    • Unique IDs for direct article referencing
    • Soft delete support
    • Configurable UI with support for navigation lists, category trees, dynamic tables of content, feedback, and more
  • Auditing
    • Tracks data-altering actions with details
    • Filterable by action type, text, member, date, server, and source (in-site, API Key, OAuth client)
    • Exportable
    • Configurable archive settings
  • Embeddables
    • Scripted, configurable, reusable, dynamic widgets that can be selected and embedded into content.
    • ‘Tips’ embeddable types to render alerts, warning, and errors
    • ‘Navigation List’ embeddable type to list a set of navigation links in content 
    • Restrict embeddable support and availability to specific content types
    • Restrict embeddable availability to specific roles
  • Embeddable Studio 
    • Develop and customize embeddable types using an integrated IDE
    • Import/export support
  • Embeddable Management
    • Import, export, enable, and translate available embeddables outside of Embeddable Studio
  • Peekable Content
    • New, content-specific rich, interactive, hover previews for all built-in content types
    • Can be enabled or disabled per content type
    • Preview content is defined by editable widgets
    • Same, new, content-specific previews are used for inline-rendered web previews of other content within the community
    • Styling of web previews of content outside of the community updated to match peeks.
    • Replaces User Hover 
    • Mentioned content is automatically preview-able
    • Extensible with custom content types via IPeekableContent API
  • Group Permission Template Editing
    • New ‘Membership Types’ administration panel to configure default permissions for each built-in membership types per group type independently
    • New ‘Global Permissions’ administration panel to configure default permissions for site roles per group type independently
  • Content Mentions
    • Added support for mentioning all core content (articles, wikis, blog posts, forum threads, event, media, and ideas)
    • API support for extending to custom types
  • New Banner System Notifications
    • System notifications now visible by default in a banner instead of alert
    • Can be dismissed for a configurable period of time
    • Both the Job Server and the Socket Message Bus Server (as well as any bus that implements the new IMessageBus API) automatically monitor and raise non-resolvable system notifications on component unavailability, self-resolving when availability is restored.
    • All notifications (system and standard) now available in the banner on mobile
  • New widget enablement (formally called 'Bulk Replace Widget') and replacement experience with staged changes and preview support
  • Reporting
    • New ‘Application Type’ filter 
    • Added ‘quick access’ reporting links to group and application management panels
    • Added direct links in group and application management panels
    • Added content type graphs to Active Content and Viewed Content reports
    • Added linked graphs to existing summary reports
  • Moderation
    • New moderation workflow option to identify, by content type, when rejected content in the moderation workflow should enter the abuse workflow
    • Added data attribute support ('data-*') to content filtering options (TE-14824)
    • New ‘Exempt Roles’ option to specify specific roles whose members’ content should bypass automated abuse rules, manual abuse flagging, or moderation
  • Administration
    • Added profile field selections to members export in administration
    • New permission, ‘Rest API Key Access’, to enable/disable REST API key usage by role
    • New 'Groups' tab in member administration to manage a users group memberships
    • Added max cache duration configuration to set max lifetime on cache items
  • Email verification
    • When using forms authentication, optionally require email verification on signup and private email updates
  • UI General
    • Added cancel option when editing content
    • Added link to the votes count when viewing an idea to see the members who voted
    • Added visual identifier on locked threads in the forum thread list
    • Added ability to set role based authorization to content pages
    • Preview panel now shows staged items and contexts across the community
  • Other
    • Members can now subscribe to media file subscriptions (TE-9736)
    • Added QAPage structured data on question forum threads What is QAPage structured data? 
    • Added 'Bypass Validation' permission to Groups, Calendars, Ideations, Wikis, and Leaderboards
    • Added support for mobile app protocols for OAuth clients
    • Added moderate date boosting to search results

Updated

  • Mention Updates
    • Categorized suggestions - Members, Content, Applications, Groups
    • Contextual Categories - Content types can define context-aware categories to prioritize
    • Automatic mention detection recognizes links from the local community and converts to mentions
  • Offline Identification (TE-15146)
    • Replaced with newer, more minimal UI
    • Implemented by ‘Offline Indicator’ widget
  • Group/Application Permission Management Panel Updates
    • New ‘By Permission’ tab
    • ‘Site Roles’ tab updated to include filter for only roles with permissions set
  • Reporting
    • Updated group list filter in reporting to include parent group name
    • Date filter month and year fields are now dropdowns to allow quicker selection of dates
  • Widgets
    • Updated to support role based custom URL links with open in a new window option
    • Added icon support to allow image based navigation
    • Added status date to the post attributes
    • Main date displayed is now created date
    • In sidebar mode and sorting by status date the status date is displayed
    • Added sorting options to widget configuration
    • ‘Navigation’ widget updated to support role based custom url links with option to open in a new window
    • ‘Navigation List’
    • ‘Forum Thread - List’ widget updated to sort by thread or reply vs only thread date
    • ‘Idea - List’ 
    • New dynamic table of contents widget can decorate most pages’ content with generated, navigable, bookmarkable, index
    • New generic tag list widget
  • Endless scrolling regions
    • Only endlessly scrolls to a configurable point, before requiring user interaction to continue to load more, enabling accessible footer content.
    • Can quickly return to top of endless scrolling regions
  • Administration
    • Improved user 'Total Posts' count (visible in Member Management) calculation process and added direct link to Content Report filter to the user (TE-9223)
    • Event monitoring, New Member experience, and Membership Options panels updated to native panels
  • Other
    • Subscribing to an Idea now additionally includes status update changes (TE-15258)
    • Removed comment search results from their owning content type's category. Comments will now only show under Comments facet. (TE-14606)
    • Added option to set alt text value for blog post "post image"
    • Improved date/time/month selector
    • Updated messaging when bookmarking users to clarify the action of following the user (TE-15171)
    • Updated OAuth authorization to support Bearer prefix (TE-15661)
    • Improved cache control header rendering on content in secured file stores that is also (intentionally) accessible to anonymous users
    • General cache and performance improvements
    • Updated Solr to version 8.7.0
    • Updated to jQuery v3.5

Developers

  • New LESS color modification APIS, intended to replace all previous uses of lighten(), darken(), or contrast(). 
    • Correctly calculates colors relative to compliments, allowing for significantly improved color configuration support in theme configuration.
    • Enables simple support for more significantly configured themes, including dark modes.
    • Social theme updated to consume new APIs and expose contrast options
  • CFS
    • Added API support for files over 2.1GB
    • Updated CFS download processing logic. Added new before/after download events and GetClientDownloadURL to CFS API
  • New endless scrolling API ($.fn.evolutionScrollable) 
    • dynamically loading content on scroll, tracking page index
    • Pre-filling
    • Support for page batching which limits how many scroll page loads can be loaded until a user is required to continue with "load more"
    • Accepting either an explicit container or automatically detecting the scrollable container (self, an ancestor, or window)
    • Accurately compensating for static elements beneath scrollable item that could break scroll end events
    • Loading indicators along with "return to top" indicator
    • Decorates an element to be scrollable, supporting 
  • APIs
    • IContextualMentionContainingContentType : IMentionContainingContentType - adds support for providing contextual mentions within its content type.
    • ICategorizedMentionContainingContentType : IMentionContainingContentType - adds support for contextual categories within its content type
    • IMentionableContentType (v2) : IContentType - enables mention loading with support for editable label text with self-defined mention loading (like V1)
    • IIndexedMentionableContentType (v2) : IContentType - enables mention loading with support for editable label text with querying defined by the mention core service via the search index
    • ISubscriptionViewContentType - to review users that can read subscription lists
    • IAuditable, IExtendedAuditable, IAuditableMessageOverride - API entity interfaces to allow integration with Auditing
    • IAuditing - in-process API to add and list auditing records
    • AuditableIgnore - attribute that can be added to an IAuditable entity's properties to exclude them from edit change detection
    • Can be marked non-resolvable by users and only closed logically by code to enable support for self-resolving notifications
    • A state property was added to the PageContext API to allow user defined custom data to be persisted from ParseContext to Validate.
    • Improvements to the Validate action on URL definitions to better facilitate translated messages and redirects to login for anonymous users prior to not found or access denied responses.
    • New IMessageBus interface replaces ISocketMessageBus to enable better integration of third party message buses
    • Adds support for automatically raising and resolving unavailability system notifications, diagnostics, richer logging, cache refreshing on reconnects, and tracking of events.
    • Mentions
    • Subscription Lists
    • Auditing
    • System Notifications
    • Url Definition Improvements
    • Message Bus
    • Improved navigation confirmation API with support for usage within administration and contextual management panels
  • Scripting
    • Server-side JavaScript can now throw user-renderable exceptions using “throw ‘message’”
    • Improved exception logging from scripts to better identify the script file/name where the error occurred
    • All lists coming from the API can now be used as JavaScript arrays in Server-side JavaScript (in addition to their original properties/methods)
    • New configuration property templates and rules
    • Scheduled file executions with live progress feedback and impersonation support

Fixed

  • TE-5000 - Fixed exception that may occur when attempting to expunge an abusive comment
  • TE-5623 - Removed MutipleUpload file handler
  • TE-7164 - Disapproved users cannot change passwords
  • TE-8887 - Fixed timezone differences when viewing and setting job schedules
  • TE-9217 - Update thread split logic to ensure author is sent a notification
  • TE-10358 - Improved error logging and plugin identification if a plugin fails to load due to errors
  • TE-10368 - Updated People Search widget to better handle the case when a large number of searchable profile fields are configured
  • TE-12277 - Improved caching in role services (user role checks and general role retrieval)
  • TE-14600 - Improved performance when retrieving users for anniversary automation
  • TE-14632 - Fixed issue where original blog post author was unable to edit blog post that has been featured
  • TE-14713 - Performance update when retrieving Abuse Creator Effectiveness & Abuse Reporter Effectiveness Metrics
  • TE-14719 - Migrated remaining usages of obsolete IPropertyControls
  • TE-14806 - Disapproved users no longer sent emails
  • TE-14811 - Fixed issue allowing a blank link when adding a custom link in the Navigation widget
  • TE-14838 - Improved performance when retrieving status messages for search indexing
  • TE-14851 - 404 encountered when navigating in Administrative panel to Applications
  • TE-14895 - Unauthenticated users are now redirected to login instead of 404 when viewing user notifications page
  • TE-14989 - Fixed issue with forum thread list APIs not applying MaxReplyCount when value was 0
  • TE-14998 - Content that is approved through moderation without sending an appeal (ex. moderated comment, threads) will no longer show up as user appealed in reporting
  • TE-15007 - General error reporting improvements including improved messaging and more accurate response codes
  • TE-15068 - Updated default feature sorting in the featured content carousel widget to start date
  • TE-15069 - Corrected persistence of application configuration data for forums, blogs, media, wikis that can result in configuration differences when legacy file based configuration options did not match
  • TE-15074 - Updated blog management panel to not list posts that are not editable by the accessing user
  • TE-15090 - New, auto-resolving system notification when job service cannot be contacted for an extended period of time
  • TE-15132 - Updates to allowed role editing option for platform service account
  • TE-15156 - Updated wiki page point automation to not attempt to restore points for creation when the page is edited
  • TE-15161 - Updated PDF file handling to not force downloading (downloads will still be forced when clicking explicit "download" links in media galleries).
  • TE-15185 - Removed logging 404s on content pages
  • TE-15190 - Fixed issue with being unable to mention members that have non-ASCII characters in display name
  • TE-15344 - Overwrite Permission:  Apply to New and Existing Groups, Public Closed, Members, Calendar - Create Events, Allow
  • TE-15349 - Added api.ashx to robots.txt to avoid any possibility of indexing
  • TE-15420 - Updated rendered media file listing sort option to match configuration
  • TE-15427 - Updated anonymous user mention experience
  • TE-15458 - Updated default option when creating an idea and a category is required to be 'Not Categorized' instead of defaulting to first option
  • TE-15486 - Updated date format date fields in CSV exports to be more Excel friendly and add UTC date columns
  • TE-15487, TE-15491 - Removed duplicate import in handheld.less file
  • TE-15524 - Moved calendar event and media comment notifications out of 'core' plugins to allow configurable enablement/disablement
  • TE-15532 - URL redirect improvements
  • TE-15589 - Updated studios to not refresh when searching documentation and hitting enter
  • TE-15636 - User status message is now disabled by default on REST calls for performance reasons. Added '"enableRestStatusMessageOnUser" option in communityserver.config file to re-enable the option.
  • TE-15642 - Video transcoding Job shows up in notification list due to the same class implementing the 'transcoding complete' notification
  • TE-15643 - Video Transcoder does not support transcoding videos over 2.1 GB in size
  • TE-15645 - CFS APIs now support files over 2.1 GB in size
  • TE-15683 - Fixed cache issue where comment votes total may be stale for a period of time after a vote
  • TE-15715 - Fixed caching issue that can cause destination forum thread list to not render after merging another forum into it
  • TE-15748 - Fixed issue where 'Approve' links on staged changes that appear at the bottom of the panel will not expand until scroll event occurs
  • TE-15799 - Removed legacy, unused user browse utility file
  • TE-15811 - Fixed issue with blog post PostImageUrl value being ignored on updates when using APIs
  • TE-15911 - Updated link to latest thread in Forum Thread - List widget to include 'Latest' text in link target
  • TE-16086 - Fixed paging with RoleList API
  • TE-16091 - Updated Open Graph reference URL to https
  • TE-16112 - Fixed issue with search indexing when a calendar is deleted
  • TE-16117 - Fixed duplicate blog post notifications when 'Blog Post Author' notification is enabled
  • TE-16118 - Corrected reverse inheritance processing on Unit values
  • TE-16126 - Increased OAuth token expiration time

Upgrade Notes

  • Before upgrading, read Obsolescence.
  • REST API Key Access
    • What changed?
      • Accessing REST using an API key is now authorized using the 'REST API Key Access' permission.
    • What do I need to do?
      • Any users that you want to allow accessing REST via API key must be put into the upgraded role 'API Access By Key' or the 'REST API Key Access' permission must be added to any new or existing roles that require this level of access.
  • REST User 'Current Status'
    • What changed?
      • For performance reasons, the 'CurrentStatus' value on the User (Author) entities is no longer returned by default on REST calls. This value represented the last status message the user entered and was typically never used when displaying the information it was returned with. For example, when requesting a list of forum thread replies via REST, this value for retrieved for each reply author but [typically] was out of context (never used for display) for a typical use of listing thread replies yet the cost was incurred.
    • What if I need the status message?
      • Status Message API - You can always retrieve users statuses by the Status Message REST Endpoints.
      • Globally re-enabling - To re-enable the previous behavior of including the current status, set the '"enableRestStatusMessageOnUser" option in communityserver.config file to "true".
  • CFS support for files over 2.1 GB
    • What changed?
      • The CFS API ContentLength property as been updated from a int32 to long to support files over 2.1GB.
      • Technically the CFS has always supported uploading files over 2.1 GB but the ContentLength property was inaccurate so any reference to this could create an exception. 
      • The CFS API has been around almost as long as Community and there were discussions (internal and external) around creating a new v3 API or update the existing which is traditionally something we attempt to avoid at all cost. Due to potential trickling down and invasive impact of a new V3 for this particular change, we decided to update the existing V2 ContentLength property from int32 -> long.
      • NOTE: This only impacts anyone who has written their own CFS providers or coded directly against the CFS API.
    • What do I need to do if this affects me?
      • No code changes are necessary but if impacted you will need to re-compile your assemblies against version 12.