Major Enhancements

#1507398 (Bugs #91013, #91014) Added User settings UI page for email notifications.

#1504132 (Bug #90741) Adding new functionality that allows the automation of cleaning up user's pending changelist, if settings are enabled.

#1502499, #1503697, #1504157 (Bug #89906) Added support for Global notification configuration.

#1499167 (Bug #90426) Implemented the support to display Readme.md file for Projects.

#1496945, #1508873 (Bug #86498, #90885) Added support for Markdown in comments. Markdown in comments is limited to syntax which doesn't break the flow of the page.

#1493811, #1496152, #1496156 (Bug #90559, #90562, #90671, #90672) Additional review filters have been added to allow users to filter their reviews list based on: If they have commented on a review and if they have voted on a review.

#1488307 (Bug #89886) Implemented Action Dashboard on home page to allow user to see what reviews require their action.

#1485432, #1485462, #1489449 (Bug #86758) Added support for PHP7 in P4PHP and Swarm.

#1481965 (Bug #89025) Adding functionality to change the author of a review. To enable this feature you need to change this to true. 'allow_author_change' => false,

Minor Enhancements

#1510372 (Bug #91320) Added ability to disable and limit what markdown is rendered. Settings will be: 'projects' => array( 'readme_mode' => 'restricted' // Modes, "disabled", "restricted", // "unrestricted" ); Disabled = means now markdown rendered at all. Restricted = Will render default markdown but not html elements Unrestricted = Will render everything it can in the file with no restrictions.

#1508474 (Bug #90730) Remove old legacy trigger scripts.

#1507806 (Bugs #90584, #90759) Configurable project sort order for 'All projects' on the home page

#1507137 (Bug #90795) Changed the Reviews page a little to allow it to display a reviews with lots of reviwers on it. Also made it so the actionable buttons like Tasks, Author change and Reviewers buttons go onto a new line once a screen size is too small.

#1503645, #1503754, #1503714 (Bug #91012) Implemented user notification settings storage

#1499644 (Bug #90703) Adding the ability to cleanup the users pending changelist related to a review when committing the reviews.

#1496624 (Bug #90637) Remove the fullname of users from the buttons when added to project so they don't look like the name is being truncated.

#1496523 (Bug #90388) Changes to email headers. This change changes how email headers are constructed for reviews. Previously we were assigning random timestamps to emails coming out of reviews, this resulted in users not being able to filter the email notifications coming out of Swarm. Main principle is - all messages should have proper Message-ID and In-Reply-To headers - if this is a new review then the email should only have a Message-ID. All messages coming out of a review should have the header of In-Reply-To pointing to the message-ID of the first email in the chain (new review being requested). All comments to the review itself should be accumulated under one thread, all comments to a specific line in a file in a specific version should have their separate thread. All other messages - actions taken on the review - should have a distinguishable value ie. "action-voted_up" and a timestamp to avoid confusion between messages. The part after "@" sign should be configurable and default to 'swarm'.

#1492280, #1498080 (Bug #88949) Enhance Swarm RESTful API to allow retrieving a list of inactive reviews and archiving the inactive reviews in bulk.

#1492207 (Bug #87136) Autosuggest dropdown with users for @mentions in comments. Added jquery plugin to enable user dropdown in comments on files/reviews/jobs with new configuration options: 'mentions' => array( 'mode' - either global(default)/projects/disabled 'usersBlacklist' - array of user id's that should not appear on the dropdown It uses a two-fold approach - if we have enabledAll - all comment boxes in all pages in Swarm - the data is fetched from js with an ajax call and then passed down to the plugin. If we have enabledInProjects only comment boxes in reviews that are part of a project will have a list of users that are either a participant on that review or a member of a project. By default the dropdown is disabled.

#1490507 (Bug #90062) Review Participants API endpoint This endpoint will enable listing, adding, removing, and updating participants on reviews. It will also allow the API caller to define required participants and place votes.

#1488227, #1489225 (Bug #89362) Review page project filtering enhancement to maintain consistency. Added an input field on the projects filter.

#1486271, #1490338 (Bug #89614) Updated P4PHP to 2016.2 release which contains a fix for not requiring login -a.

#1485328 (Bug #89885) Action Review API to support action Dashboard

#1480084, #1487008 (Bug #72450) Add option to sync change/review descriptions. If "sync_descriptions" was enabled and we have updated a change description on a changelist all previous changelists would have their description changed.

#1479671, #1486253 (Bug #87275) Only show groups tab for super users.

#1479414, #1486693 (Bugs #74561, #80804) Modify the message behaviour on commit failure. Previously we were discarding all messages coming out of p4 and passing down the first line of the message. Modify the behaviour to pass the whole message except the last line for jQuery to render. If message will have more than two lines use the extender to hide the additional output. It will pass down anything coming out of Perforce - so it will also pass any user-defined messages - like messages coming out of triggers - to the frontend.

#1478138 (Bug #85037) Override expander to allow any part of the table cell containing the shortened description to be clicked.

#1477010 (Bug #63571) Implemented a global 'ignore whitespace' button that toggles ignore off/on. Initially whitespace is not ignored - when you click the global button all files that were not ignoring whitespace and changed to ignore whitespace Similarly when you toggle the global button off all files ignoring whitespace are switched to not ignore whitespace

Bug Fixes

#1510345 (Bug #76755) Fixed abstract API controller when the implementing controllers simply return null instead of a json model.

#1510048 (Bug #90177) Fixed an issue to allow users the ability to unlink jobs from a review.

#1509403 (Bug #91047) Swarm PATCH API endpoints - cannot unset array based parameters

#1508938 (Bug #91015) Differentiate mail instance name when in a multi server environment

#1507768 (Bug #91100) Tweaked the cache reader to handle failures from fetching all users better and improved performance.

#1506970 (Bug #90564) Increased the API version to V6 for all the new API endpoints.

#1503190 (Bug #90941) Handle if dm.keys.hide is set and fetch review data as the user running Swarm and validate the normal permissions with the user requesting the zip.

#1500863 (Bug #90690) The Swarm home page was giving a bad link for RSS feeds. Fixed the javascript that handled this.

#1500020 (Bug #90785) Enhanced the archive API endpoint to allow Super user to change the transition of the review state using the Bulk review archive API endpoint.

#1499188 (Bug #90783) Improved the date validation for inactive search as well as archive.

#1497510 (Bugs #90717, #90733, #90735) It introduces a configuration option to restrict the number of action items on the dashboard (defaulting to 1000).

#1496055 (Bugs #90560, #90586) Improved the review description formatting to break at new lines.

#1494480, #1497544 (Bug #90307) If your P4 admin is mis-configured or its ticket has expired, will result in the user now getting a meaningful error message.

#1493869 (Bug #89988) Bookmark reviews filter. As we cannot reliably do the same thing for all browsers a decision has been made to include a button on the reviews page to save the url - this button should have a tooltip informing users of an option of saving the current filters by using the browsers built-in function to create bookmarks.

#1492312 (Bug #87180) Fixing temporary file creation while handling ktext files. Trigger script was creating a file and trying to run a p4 print against an open file - which would understandably fail. The message returned was not helpful to the customer at all. Changed it so instead of creating a file it creates a filename that later is used with the print command - should fix the problem and it should now be possible to recalculate digests for unexploded ktext files.

#1492205 (Bug #90376) Fixing the issue where the project typeahead would auto close when clicking inside the input. This was due to the multiPicker checking if authenticated first then dropping out instead of preventing the closure of the input box first. This has only been introduced because no multipicker was accessible unless logged in.

#1491907 (Bug #90380) If you have navigated to a private project and decided to logout, you will now be redirected to the home page instead of a 403 error.

#1491863 (Bug #90217, #90218) Make the global whitespace buttons stick between pages.

#1490000 (Bug #89983) Filter reviews by participant role only Filter reviews by participant role only On the 'Reviews' page selecting "I'm a participant" should not also return all the views I authored

#1489999 (Bug #80507) We should attempt to line break long descriptions to prevent the whole description from appearing in bold.

#1487039 (Bug #90243) This change prevents the user from adding a non-committed change to a review from the 'Add commit...', 'Already committed...' dialogs.

#1484420 (Bug #89829) Defensive code for trigger script to ensure argument are defined.

#1483093, #1490001 (Bug #89908) Perforce admin users should not see all projects Perforce super users should see all projects Perforce admin users should not see all projects; they should be subject to permissions when it comes to project filtering

#1481962 (Bug #80366) Close our confirm popover when clicked outside. Before, the only way to close the popover was by clicking on the 'Cancel' button inside it. This could be problematic when the DOM structure changes as it could cause the popover being visually detached from the element.

#1481527, #1482019, #1483208 (Bug #89801) PHP 7.0-compatible .htaccess and build.xml files

#1480955 (Bug #89891) Make sure if someone updates a review, they get properly credited for the work. Previously if user 'foo' created a review, all updates to that review would be credited to that user. This should make sure anyone who at any point updates the review with a new shelf, is credited for the work, instead of the review author.

#1480702 (Bug #88630) Show a better error for invalid group name created via the API

#1480070 (Bug #89622) Allow owners to delete a project without needing to be a member

#1479660 (Bug #65237) Make branch id in sync with branch name

#1474448 (Bug #89662) Fixed a bug where review version slider was always rendered in scrolling mode if review page was loaded with 'Files' tab not active.