Published and Released July 24, 2014 This article describes what's new in Traction® TeamPage 6.0.09. The main highlight is the addition of in-page push notifications using Web Sockets. The Notification user interface has also been streamlined to make it simpler to Watch activity in any Space, or activity associated with any Person, Tag, or Article. Automatic Notifications based on any Task you're mentioned in, discussions you've participated in, or changes to Articles you've created have also been streamlined. There are also several bug fixes and other improvements, including important changes to SDK Login and Authentication API's which custom plug-in developers should review.
• Fixed a bug that prevented work in progress version of an update to an existing entry from being loaded. The form would be opened, but all fields would be populated with the values from the current version of the entry rather than with the values from the work in progress. (Proteus10929)
• Fixed an issue that could, in some cases, prevent administrators from accessing the Feed Manager view if there was a problem downloading an RSS or Atom feed. (Server72743)
• Fixed a bug that caused the button and label for an administrator's own Browser Preferences dialog to appear when they were viewing the Personal Setup > Preferences page for another user's account. (Server72685)
• Fixed a bug that could cause the web service to shut down before all background tasks had finished when a shut down was requested from the console or from the Server Setup > General page. (Server72547)
• Fixed a bug that could cause the daemon background processes to attempt to continue to run even though the server is shutting down. This issue was mostly harmless, but could produce a lot of errors and warnings in the TeamPage server's log files. (Server72813)
• Fixed a bug that could prevent some WebDAV clients from being able to authenticate with TeamPage. (Server72816)
• Fixed a bug that could cause TeamPage's requests to its own WebDAV service, on behalf of users or as part of some background processes, to be throttled by the DoS (denial of service) filter feature. These legitimate requests are now no longer considered for DoS filtering. Normal requests, for WebDAV or any other resources or views, will still be throttled or rejected according to the configuration settings for the TeamPage server's DoS filter. (Server72801)
• Fixed a bug related to opening the inline comment form on an iOS device. The error was not generally noticeable to the user, and was not known to have prevented the user from creating their comment normally, but may have had other minor but unexpected consequences. (Server72167)
• Fixed a bug that could cause a request for an entry by ID when the ID provided was invalid in a certain way could cause an error to be displayed (ArrayIndexOutOfBoundsException). (Server70621)
• Restored the correct green color for the "Start using TeamPage" button on the Invitation Confirmation view. (Server72534)
• Fixed a style issue that could cause tasks on the paragraphs or comments of a completed task to also appear to have been completed. (JPBO2244)
• Fixed a bug that caused the Space Setup > Tags page and part of the Space Setup > Mailbox page not to be displayed for a space that had been deactivated. (Server73065)
• Fixed a bug that caused single entry views of events to attribute creation of the event entry to the user viewing the page rather than the entry's author. (Proteus11008)
• Fixed the single entry Export action link label to read "Export Article" instead of "Export Articles." (Server72822)
• Modified the way TeamPage's WebDAV service identifies locks on files and folders to fix an incompatibility between the previous identifiers and the WebDAV client built into Mac OS X Mavericks' Finder. Previously, attempts to upload or create files from Finder would create a 0 byte file, but after that, Finder would report an error dialog with the message "The operation can’t be completed because the item [file name] is in use." (Server72841)
• Fixed a bug that caused changes made to the "Recipients of Server Digests" and "Spaces Eligible for Inclusion in the Digest" settings (in the Server Setup > Email > Digest section) to appear not to have been applied. The setting changes were in fact applied, but the values in the side-by-side selectors would appear to revert to their previous positions. (Server72782)
• Fixed an issue that caused the "drop area" (an overlay with the text, "Drop images and files here") to appear when files or folders were dragged into a Documents page being viewed by a user who did not have the required permission to create/upload new files and folders in the folder being viewed. Files or folders dropped in the drop area would not be stored in the destination folder, and the user would see an error message. Users who drag files and folders into a Documents page without the proper permission to create/upload new files and folders in the folder being viewed will no longer see the drop area. (Proteus10969)
• Fixed an issue in the Space and Project selectors, used in various TeamPage forms, which could cause Javascript errors in some versions of Internet Explorer. The errors weren't always reported to the user, but could be if IE's script debugging feature was enabled. (Server72827)
• Fixed an issue that prevented attachments from being stored for an entry created by Visitor when Visitor is disabled by certain configuration settings (or by the TeamPage license currently installed on the server). (Server73252)
Features and Improvements
In-Page Push Notifications
If you have been using our support site in the past month or two, you may have noticed that there is a new addition to the navigation elements at the top of the page, in the form of a new Notifications menu.
This menu shows a continuously updated count indicating how many unread notifications you have. The notifications shown in the menu are driven by the same subscriptions that drive your email Notification: 1) Watch any Space, Person, Tag, or Article using the sidebar Watch menu; 2) Receive Automatic Notifications for any Task you're mentioned in, changes to Articles you create, or discussions you've participated (configurable in your Account Settings > Subscriptions > Notifications page). If you click the Notifications menu, a panel drops down which shows a reverse chronological list of all your notifications. You can click to mark them read, unread, or flagged. There are links to quickly mark all notifications read, clear all read notifications, and to show an expanded feed of all notifications on the new User Profile > Alerts > Notifications page.
Notifications are automatically marked read as you navigate around the TeamPage interface. TeamPage now uses web sockets to keep an open channel between the server and the browser, which the server uses to push updates to the unread notification count, and which the client can use to tell the server to mark notifications read, unread, flagged, unflagged, etc. If your browser does not support web sockets, or if your server is configured in such a way as to prevent web sockets from being used, you will not get push notifications, but the TeamPage web client will gracefully fall back to updating the unread count each time you navigate to a different page or refresh the current page.
In conjunction with these changes, we have unified the terminology for all notification related features (we use the terms "Notification" and "Notify" uniformly rather than the term "Alert"), and we have retired the classic email notifier and jabber notifier event listeners. Support for Jabber notification profiles with the standard notification features is still available by installing the new com.traction.jabber plug-in. (Server72261)
Others
• The controls used to browse users and spaces on the Server Settings > People and Spaces pages have been streamlined and cleaned up. Searching or "scrolling" through results pages no longer modifies the URL.
• Upgraded the version of the Jetty web server that ships with TeamPage from version 9.15 to version 9.21. We still maintain our own fork of the Jetty project which you can access here. (95311f75cdf6)
• Customers that have TeamPage's Feed Reader module can now import feed subscriptions in batch by uploading a CSV file containing one row for each feed subscription.
• The Japanese localization has been updated to include translations for everything that was internationalized as of TeamPage 6.0.06.
• Changed DoS filtering to be disabled by default, and added a setting to that allows it to be enabled. (Server72800)
• Changed the format of URLs used for links to attachments that appear in entry content so that Microsoft Internet Explorer will be able to open Microsoft Word, Powerpoint and Excel files directly in Office for viewing or editing (depending upon the requesting user's permission). (Some older versions of Internet Explorer may not support this capability.) (Server71532)
• Improved the way that error messages are handled, particularly the mechanics of communicating them to users who are being redirected to a login form. In particular, the text of the error message is no longer encoded in the URL. (Server72804)
• Added a setting to the Server Setup > Email > Outgoing (SMTP) page that allows a server administrator to disable outgoing email independent of whether the SMTP server connection details have been specified. (Server72010)
• Added support for rich text editing on iOS devices. The TinyMCE rich text editor we use in TeamPage now works with iPhones and iPads. (Server72167)
• Text that appears in the TinyMCE rich text editor interface is now correctly internationalized. TeamPage-specific resources are localizable along with all other resources, as they had been in previous releases. (Server72504)
• Changed the way that some unexpected script errors are handled in TeamPage's main Proteus skin browser-based interface. The intent of this change is to ensure that we are capturing some errors which may have previously happened in the background without anyone knowing, with unpredictable consequences. (Proteus10833)
• The TeamPage logo image that is displayed on the Password Reset page has been updated to the newest version. The presence of our old logo image on this page had been previously overlooked. (JPBO3328)
• Updated the descriptions for the settings on the Space Setup > Dashboard > Display setting collection. (Server72794)
• The "OK" and "Cancel" buttons are still enabled after the "Apply" button is clicked in the Insert/Edit Image dialog. Previously, although the "X" in the top right corner of the dialog could be clicked to close it after applying changes, the fact that these buttons were not available in this case led to confusion for some users. (Server71902)
• When changing the port number for TeamPage's web server from the Server Setup > Network page, a confirmation / warning message will now be displayed telling the administrator that the TeamPage service should be restarted to pick up the change. Previously, a misleading error message displayed. (Server71371)
• Improved handling of certain types of errors that can be encountered while attempting to list the contents of WebDAV folders so that the rest of the folder's contents can still be displayed and be used normally. (Server72860)
• Created a workaround for a bug in some versions of Internet Explorer that could prevent users from giving focus to some form fields (i.e., positioning their cursor in the field in order to give keyboard input). In the case of one report of this issue, a user reported being unable to enter text into the title or body of a form after they had used the inline comment form in that tab or window. This is a newly discovered manifestation of this bug in Internet Explorer. (See github.com/jwysiw… for more details). (Proteus10943)
For Developers
• Fixed an issue that prevented developers from overriding the default value for the "email_replyto" field in a custom variation of the "emailreply" form. (Proteus10935)
• In order to facilitate improved handling of login, authentication and other security errors and exceptions, we have elected to change some public APIs in the Traction SDK. We regret having to make changes which may break existing custom Java code based upon our public SDK, but we believe that few or no customers will be affected by these changes, and that these changes will be a very good improvement for the long term. Please read SDK357 for further details.
• There is a new interface in com.traction.sdk.props:
public interface GetPropertyList extends Iterable<GetProperty2>, Closeable
This interface supports iterating through a list of maps, in the form of GetProperty2 instances, and can be closed when the client code is finished with it. The data source can be a file or any other underlying resource.
• com.traction.sdk.SdkFactory has some new methods:
createProjectX(Context context, String name) / createProjectX(Context context, int id) throws AuthenticationException - these methods can be used to retrieve a Project object representing a space when the client code would like to have an AuthenticationException thrown if the requested name or ID refers to either an invisible or invalid Project. These methods are like the methods in TractionSecurityManager whose names end with "X", in that they are equivalent to assertions (in this case, that the Project being requested by name or ID is valid and that the requesting User has Access permission in that space).
readCsv(Reader csvSource) throws IOException - this method uses the Super CSV library. It returns a GetPropertyList with each item in the iteration representing the column name - column value pairs for a row in the CSV file.
• com.traction.sdk.Server has a few changes also:
checkOutgoingEmailEnabledQ / checkOutgoingEmailEnabledX - these methods test whether outgoing email is enabled for the server.
checkOutgoingEmailAvailableQ / checkOutgoingEmailAvailableX - these methods test whether outgoing email is available for the server. This requires not only that it be enabled, but also that at least the SMTP server address and the "Outgoing Email 'From' Address" setting have a value. This test does not currently take into account whether a successful test of the connection settings has been recently performed, but that may one day be incorporated.
All the methods whose names end in "Q" or "X" are similar to those in TractionSecurityManager (the "Q" methods are "Quiet" tests and the "X" methods are assertions that throw an "eXception" in case of test failure).
Some methods have been added to the com.traction.sdk.EventTransport class:
boolean isAvailable(Context context, EventContext eventContext, NotificationProfile profile) - Returns true if the transport is available, allowing the Notifier listener to skip a transport that is not available without having to go to the trouble of invoking its send method only to have the send operation fail. The default implementation returns true. The EmailTransport implementation returns true if outgoing email is configured and enabled. (Server72969)
Collection<? extends NotificationProfile> getNotificationProfiles(User user) - Returns any NotificationProfiles that are automatically configurable from existing settings. The default implementation returns an empty list, but EmailTransport's implementation returns a list with one NotificationProfile for each email address associated with the given user's account.