I'm thrilled to announce that version 9.0 of Telligent Community is done and ready for production use:

We're doing a soft launch today, but will be more formally announcing the general availability of version 9.0 in January with full press release, media and analyst coverage. We'll spend the next 3-4 weeks updating the documentation and other housekeeping items to prepare for these larger launch activities.

This release, and the process we took it through, is part of a more open and transparent business that we are creating at Telligent. As it applies to this release:

  • Running various versions ourselves (here) starting nearly 6 months ago
  • Soliciting feedback from our community about the product
  • Making available a set of preview releases to solicit additional feedback
  • Moving many of our integrations to open source on GitHub
  • Transparent communication on our progression of bug fixes, updates and improvements

We are also starting to think about the next version of the product and we have some big goals. We'll start sharing those early next year.

On behalf of the entire Telligent team: thank you for your contributions to 9.0. We wouldn't be here without you.


What we updated between Preview 4 and the final release:


  • Added deleting notifications to deleted user, even when reassigned. Moved delete of notifications where deleted user was only an actor to occur even on reassign. Increased procedure timeout.
  • Added supporting data storage for widget imports and support for translating uneditable widgets and improved string formatting to be exception-resistant.
  • Added anonymous check to BlogPostContentType and BlogApplicationType as well
  • Added Enable Contact and Email Address fields to blog options. Contact Requests panel hidden if Enable Contact is false.
  • Added check for empty or null comment body.
  • Added IsHidden to calendar sprocs and updated calendar errors to log in Exceptions Reports instead of Event Logs
  • Added check for improper sort by configuration when containerIds is empty.


  • Improved auto-scrolling in preview panel to only preselect staged pages by URL. Improved preview update logic and messaging.
  • Reverted some REST changes that resulted in changing previously released endpoint functionality when the response entity is null.


Bug Fixes

  • Fixed for forum thread and activity story dates (timezone issue)
  • Fixed Users can only see activity if its for themselves or they can manage membership, the user viewed is not anon or a system account. Removed points user nav, fixed url permissions and page access permissions
  • Fixed email transfer encoding is Base64. Should address email subject encoding issues.
  • Fixed activity stream UI to reset the comment editor regardless of whether the save was published or not.
  • Fixed Issue with deleting notifications to user and activity stories distinct storyId.
  • Fixed private message list to resize correctly to prevent scrolling with the page.
  • Fixed race condition when checking for duplicate system notifications by implementing a distributed lock on the system notification create process.
  • Fixed friendship id is assigned for use in AfterCreate event.
  • Fixed contextual panels to render automatically loaded panels (when the user has access to only one category and only one panel in that category) the same way it would render the panel if it were loaded normally (same eventing/capabilities).
  • Fixed processing animation to use ui-loading which is, by default, three pulsating dots (same loading animation used in admin panels and elsewhere).
  • Fixed system notification is created as the service user. Restore accidentally deleted line.
  • Fixed HtmlAttributeEncode added to name field, Role name with quotes now displays properly when editing a role.
  • Fixed explicitly enabled fallback to default wiki page when showing revision history.
  • Fixed leaderboard GetSecurableId to check the content type first to ensure returning the correct ContentId.
  • Fixed the hash generation slightly to use UTF8 encoding, and to convert the binary hash signature to a Base64 string for HTTP transport. This means checking the hash involves calling Convert.FromBase64String(hash) and using HMACSHA256(Encoding.UTF8.GetBytes(secret)) before computing the hash.
  • Fixed wiki Delete Page permission is now a logic permission that encapsulates the current author check. Wiki Page Delete Url updated to use Logic Permission. Wiki Panel also checks logic permission now.
  • Fixed permissions issue preventing Calendar Event from being moderated.
  • Fixed unused reference to legacy widget editor within the token template editor.
  • Fixed permissions panel now allows a permission to be saved with no selected permissions, prior to the fix saving with no permissions made no changes to the existing permissions on a role.
  • Fixed issue with revisions by deleted user causing user delete job to hang
  • Fixed widget deserialization to store attachments in temp storage until a final location is determined (staging/published).
  • Fixed caching and permission issues with widget imports that include attachments, Added support for editing widget contexts with syncing and diffing,
  • Fixed widget edit link to only include the theme if there is a themed variant and to include a returnurl, Corrected several remaining hardcoded resources, Preview opens on a separate tab, Corrected legacy auto-incrementing widget number, Corrected regression with shortcut keys not preventing bubbling, Corrected edge cases that could lead to tabs not being fully closed, Corrected edge cases that could lead to other tabs not being selected after current tabs are closed
  • Fixed error when comparing language resources for differences, Removed sample code

Widget Studio improvement/fixes:


  • Attachment uploading works
  • Factory default diffing (in addition to staged diffing)
  • Language diffing
  • Save As
  • Save For Theme
  • Export All Resources button, which exports all regardless of editability
  • Export All Widgets, which still respects editability rules
  • Export single Widget or Single Widget's Resources in actions menus
  • Optionally provide widget ID when creating new dev mode widget, otherwise auto-generated.
  • List of providers when creating a dev mode widget reflect all that pass the availability check
  • Widget and Resource importing via a single button. Prompts for which items (that are different from existing) to import. Accepts importing non-editable widget resources, but not widgets. Changes are shown in staging, including non-editable items which show alerts if trying to navigate to them to do anything other than preview, publish, or revert.

Browse View:

  • Multi-select mode in browse view, which uses temporary storage if working with a too-long set of widgets.
  • Filtering adjusted to better reflect behavior developer mode. (All, User Installed, Default, Edited Default, and specific Plugin-defined) where plugin-defined are not shown in other lists, and only show their own
  • Editable and Provider Developer Check in place to ensure correct permissions in developer mode
  • Bypassed for staging view to still show non editable staged widgets post-resource-import
  • Auto-sync tree should not keep moving on every save and should not lose or flash current selections
  • Widget lists order corrected
  • Corrected styling/truncation of items
  • 'delete' not clickable in browse view
  • Improvements to search, to better search across all components of a widget at once
  • Better keyboard navigation
  • "escaping" from search re-focuses on previously focused element for quicker keyboard navigation
  • Theme badges added


  • Diff view, same as other views, including against factory default
  • Showing details in a toggle - Provider, Widget ID, Theme ID/Name
  • Direct linking from overviw to other theme variants


  • Quick tab switching (alt/tab style) via CTRL+Q with a popup
  • Storing which tabs are open in local storage (in addition to foremost which is URL-defined) to maintain state across browsing away and back
  • New shortcut: new widget (ctrl+n)
  • New shortcut: rearrange tab to left or right (ctrl alt left/right)
  • Include all items in attachment component drop downs (including other attachments and all widget components)
  • Change browse menu drop down to be expanded horizontally instead of collapsed


  • Previewing a widget should turn preview on
  • When leaving widget studio, turn preview mode off
  • Reverting all and publishing all should confirm
  • Widget editor permalinks working


  • Creating a new widget without a name is automatically named Unnamed Widget. New or copied widgets that match existing widgets' names are given an auto-incrementing number in their name which can be adjusted after.
  • No longer deleting files just created
  • Resources not editable in developer mode
  • Switching Comparing/Uncomparing shouldn't raise 'change' on editor
  • Configuration changes not being saved
  • Tabs: Closing last of tabs doesn't bring back blank canvas - isolate not closing edit view controller
  • Fixed issue with resources bleeding between widgets
  • Corrected _many_ issues with loading, navigating, and editing themed widgets and attachments
  • Adjusted styling of fusion theme's line highlights
  • Better reloading/syncing across views
  • Deleting non-themed variant of a widget not removing from browse view or tab view properly
  • Fixed diffing issues with empty files
  • Corrected styling of legacy API Documentation navigation


  • Server and optional client side logging added to widget studio
  • All JS modules server-concatenated into a single ui.js.vm with require.js
  • Adjusted auto saves to happen less frequently
  • Added new 3rd visual state (queued) to still provide immediate feedback even though saves won't happen right away


  • More field labels/descriptions
  • Removed Widget Studio V1