Dec 2021 | Improved External User Directory Integration; Developer improvements for Ordered Lists, Forms, and Widgets
TeamPage December 2021 Release TeamPage 6.2.52 is focused on improvements to external user directory integration, bug fixes, and Developer SDK improvements including support for implementation of upcoming Kanban plug-in capabilities. The release also includes over 60 bug fixes and improvements for TeamPage customers and developers. Please read on for the full list of changes.
External User Directory Integration
TeamPage supports integration with External User Directory services including LDAP, Microsoft Active Directory, and Microsoft Azure AD. This can enable TeamPage users to establish their identity using their corporate login server rather requiring an IT manager to manually create and manage TeamPage accounts and passwords for each TeamPage user. External User Directory Integration also supports single sign to TeamPage if the corporate login server supports and permits this.
External User Directory Integration can support thousands, tens of thousands, or many more accounts. External Directory users can be given personal TeamPage accounts to use personal notifications, preferences, email digests, and fine grain TeamPage permissions - typically as members of a group creating content or managing a business activity like TeamPage Quality Management. External User Directory users can also be allowed to log in as authorized TeamPage Visitors - typically with limited read-only or read and comment rights. TeamPage also allows groups of users to be defined and managed by the corporate server; TeamPage administrators can then grant fine-grain permissions to members of internal or externally defined groups as well as named individuals.
In order to support quick login and calculation of permissions for any user in any context, TeamPage defines and manages internal caches based on External User Directory information and TeamPage permissions assigned to that user.
This Release makes TeamPage more efficient about refreshing cached security principle data that links internal and external identity sources. In particular, these changes make TeamPage startup faster, and reduces the number of security principle refreshes required when sufficiently fresh data has already been cached.
These improvements apply to LDAP, Microsoft Active Directory, and Microsoft Azure AD External User Directory sources, as well as any new External Directory sources which Traction Software, partners, or customers add using the TeamPage plug-in External User Directory SDK interface.
Signature Requirements Module
• When the period for collecting a specific Signature Requirement will open at a future date, its status will say something like: "Collection of signatures for this requirement will start on Jul 8, 2022" rather than just showing that the collection period is not open.
• Fixed two bugs related to the signature requirements module's tracking of supervisors and assignees with some External User Directory configurations.
• Added "cmd-k" (i.e., "meta-k") as a shortcut keystroke for opening the link dialog in the rich text editor.
• Tweaked some styles used by form fields to ensure uniform appearance across various related types of fields.
• Modified the FullCalendar plug-in so that users can meta- or cmd- click on calendar event links to open the entry in a new tab or window.
• Added settings for TeamPage's W3C ExLF logging for whether to log self-induced background requests and internal WebDAV requests. These new settings are off by default, which should prevent W3C logs from growing unnecessarily quickly with usually useless information.
• Tweaked the FullCalendar plug-in so that calendar views that load a bit slowly will show the usual loading indicator.
• The search box will now give type-ahead completion suggestions for actions. For example, if the user types "edit" from a page showing a single entry they have permission to edit, they should see a suggestion to trigger an action to open the edit form for the current entry.
• Fields of type "checklist_entries" now optionally support including an extra control that the user can use to add more entries to the list.
• The forms and other form bootstrap properties for the "task" or "schedule" hover menu items can now be overridden. Previously, these were hard-coded to use the standard taskitem and eventitem forms, respectively.
• When a user clicks a "task" or "schedule" hover menu item, the request parameter topLevel=true/false will always be set, indicating whether the hover menu was for an entry displayed at the top level (topLevel=true), or as an inline comment (topLevel=false). This can be useful if a custom form is being set up for that request which is a setup form that will need to be followed by another form dialog , such as the "taskitem" dialog, which would require that information.
• Fields of type "datetime" now optionally support specifying the desired time step used to generate suggestions for the time of day. The field configuration can simply specify a "time_step_minutes" property, e.g., time_step_minutes=15, although a value must be used that is a factor of 60 (i.e., 2, 3, 5, 10, 12, 15 or 30).
• The gwt.rpc.form tag can now get form properties from a currently scoped ViewAction. Just apply the tag attribute useViewAction="true" to a gwt.rpc.form tag. This can be particularly useful when a form is to be rendered inline, so as to avoid having to manually copy the GWT action properties from a ViewAction to the inline form bootstrap properties. This will also avoid an extra request by the client to retrieve the information required to render the form, since the response will already include everything the client needs for that.
Most of these ordered list improvements are related to the upcoming production release of TeamPage's drag-and-drop Kanban interface, but are generally applicable to support lists of SDK objects to implement new or extended TeamPage capabilities and user experience. TeamPage Kanban will be released as a free plug-in for TeamPage customers who have current software maintenance. To learn more about TeamPage Kanban or apply for pre-release trial use, please email email@example.com.
• Added the new com.traction.sdk.util.EntryPropertiesListType class that stores and retrieves list ordering in one or more properties of an entry. This requires that the requesting user (making the changes to the list order) has permission to edit the entry in which the order information is stored.
• Completely changed the way that entry list membership is determined so that it's completely customizable on a per-com.traction.sdk.list.ListType basis.
• There is also a new com.traction.sdk.list.ListMembershipFunction interface for ListType customizers who wish to cleanly separate details related to list membership from details related to list ordering.
• Plug-in authors should consider using com.traction.sdk.list.AbstractConfiguredListType as the basis for a custom ListType in order to make use of this pattern (or just using or a concrete subclass such as com.traction.sdk.list.EntryPropertiesListType), since the class and other configuration properties for a custom ListMembershipFunction can be set in the "list_membership" namespace.
• Removed the limitation that a single page could only respond to updates to a single ordered list. Customizers can now include multiple lists in a single view, and have all of them registered to "live update" in response to all applicable changes.
• The db.entries tag now supports listcontext= for applying ordering from an ordered list to query results, just like the entries tag does. Use listcontext="current" to use the currently scoped ListContext object.
• Proteus now fires "entry-moderation" events when a moderation operation performed by the current user completes. The event data payload is a JSON object
• TeamPage's Proteus skin widgets now include generic menus on top of various specific types of menu widgets.
The GenericMenu widget can be used to insert a custom menu into, e.g., the heading area (where the "Show" menu often appears). The InlineGenericMenu can be used to insert a menu into the main "HTML" area of the page by replacing a node by its ID.
• The EntryTabs and BodyTabs widgets now support initially hiding one or more tabs and instead showing a "More" tab.
For EntryTabs, individual EntryTab gwt.rpc.view tags can specify more="true" to make the tab initially hidden behind a "More" tab. (The library function com.traction.sdl.gwtrpc.shared#entrytab supports this by allowing callers to pass in a boolean variable "more" set to true or false, and will set that attribute accordingly.)
For BodyTabs, individual tabs' JSON encoded data can include an "m" property set to "true" or "false" to make the tab initially hidden behind a "More" tab.
In either case, if a tab that would otherwise have been hidden is currently selected, it will not be hidden.
• com.traction.sdk.SdkFactory now has a new method for creating a com.traction.sdk.props.PropStore representing an entry's properties, and commitChanges method will submit an edit on behalf of the requesting user if any effective changes have been applied to the PropStore.
Other bug fixes and improvements
- Fixed a bug that could cause list items to disappear unexpectedly if they had been re-added to a list after having just been removed.
- Fixed a bug that prevented list items from automatically appearing in a list when added by another user and/or in another tab/window if the list was initially empty.
- Fixed a bug that could cause deleted separator entries to continue to appear in ordered lists. Separators will now no longer appear in lists after being deleted.
- Fixed a bug that prevented order change operations on an Improvement Milestone's All Tasks page from being correctly applied.
- Fixed a bug that could prevent TeamPage from starting when running with certain plug-ins if no license had yet been installed.
- Fixed a bug that prevented JVM options updating via the server setup interface (e.g., maximum heap memory) from being applied on restart when using the normal service wrapper to run TeamPage.
- Fixed a bug that could prevent TeamPage from shutting down gracefully when running with no journal if an administrator happened to make a change to server logging options on the server settings > Server Files page.
- Fixed the styles applied to certain form fields to work better when non-Western characters are present.
- Fixed an issue that could prevent dynamic form field behaviors based on changes to numeric form fields.
- Fixed an issue that ignored the default due date inherited from a milestone when determining whether a value had been supplied for a required due date field.
- Added a "Decoration/Effect" option to the editor's image dialog that offers the following options: Auto, Drop-Shadow, Border, Photo Frame, None. The "Auto" option will select the existing default behavior, which will apply the drop-shadow effect to images that don't use the "Inline" display type.
- Cleaned up several minor cosmetic issues with the image dialog.
- Fixed a bug that prevented log files from being downloaded when running TeamPage with no journal.
- Fixed a bug in the way TeamPage evaluated permission to use certain components that require license support. In some cases, tests were too aggressive, causing TeamPage to treat some plug-ins as unlicensed. This would usually cause a message indicating that the plug-in was unlicensed to be displayed on certain pages.
- Fixed a bug that prevented the escape key from closing certain popup dialogs, such as the ones used to display enlarged versions of inline images or the details of a calendar event.
- Fixed the links for space-level plug-in settings dialogs that appear on the space settings > Plugins page. Previously, these links would correctly open the plug-in settings dialog, but for the wrong space.
- Fixed a bug rendering the "compact" version of the rapid selector format for a tag name. This issue could, among other consequences, prevent tag filter expressions from working correctly.
- Fixed a bug that prevented custom sort order from being applied to sections of type "Projects."
- Fixed a bug that could cause TeamPage to report page names as assigned even after the name had been removed from the owning entry, and the owning entry had been deleted.
- Fixed a bug that could, in some special cases (likely in TeamPage customizations that are part of plug-ins) prevent TeamPage from returning all expected results to a query.
- Fixed an issue that caused TeamPage to include an automatically generated links in certain cases when links should be omitted, such as when a user elects to omit links when emailing articles from TeamPage.
- Fixed an issue that caused the "Account Settings" link in the user menu to appear even to users who do not have "Modify Account" permission.
- Fixed a bug that could prevent a page from being properly displayed if the code being used to generate it involved a certain series of modifications to a query being used to retrieve and display entries.
- Fixed a bug that could prevent a newly uploaded license file from being properly loaded in certain specific cases.
- Fixed a bug that could cause internal system tags that don't normally appear in the interface to appear in the tag cloud and certain other places.
- Fixed an issue that prevented the place-holder text box from being hidden when opening an inline comment form from the "New Comment" action in the context menu.
- Fixed a bug that could, in some circumstances, cause some results to be omitted in response to a tag query.
- Fixed a bug that prevented a user who has permission to edit an entry from adding new attachments, even if they had Add Attachments permission in the containing space, if they did not also have Author permission in the containing space.
- The TeamPage Dec 2021 Release (6.2.52) incorporates over 60 bug fixes and general improvements, see TeamPage Change Log for a complete list of updates.
Microsoft Azure AD Cloud support for cloud and on-premises authentication and user management An example of how TeamPage External User Directory Integration works
The Work Graph Model: TeamPage style Understand how TeamPage connects people and their work.
A Fabric, not a Platform Making work actionable as well as observable: Objects, context, conversation, connection.