v2.3 Release Notes
Release Date: 30 March 2011
This time around, we have a significantly larger changelog than normal. In addition to the core team - Keith, Pedro, Trevor, and Benjamin - a number of community members have distinguished themselves in their contributions on a variety of fronts:
- CasN has done an outstanding job in the forums in reporting & debugging issues, helping other users on the forums, and some Add On module work.
- Eureka has submitted great bug reports, the occasional core patch, an updated French translation, and shared quite a bit of work on a number of Add On Modules;
- Opto has contributed detailed and useful bug reports, good patches, and insight on the forums;
- RobertBasic appeared out of nowhere to contribute patches related to better UTF/Unicode handling, translations, character encoding in general, and even a complete rework of the PDF-generation;
If you use web2project and ever run into one of these guys, buy them a tasty beverage (coffee, soda, a beer) and say “thanks”. They’re part of what makes this a great community.
Downloading & Installing
The only official distribution site is Sourceforge. Check out the Installation page to get started.
Reporting Problems
For more information, support, or to discussion upcoming features, please visit our Support Forums.
Any and all issues discovered should be added to our our Issue Tracking System. Feature requests should be marked as such and not described as issues. Please remember to mark Feature Requests as requests and not bugs.
If you’re not familiar with submitting a bug, please read my post: How To Submit a Bug
New Features
- Added an option to allow the Task Creator to allow users to add Tasklogs for other users, depending on privileges;
- Added more time formatting options in both Javascript & PHP;
- Added formal support for IIS in the installer, also made it a little more polite to our Microsoft users;
- Added the Polish translations for the core system;
- Issue 061 - System Admin - Customize List Screens
- Issue 109 - User Admin - Password Strength Checker
- Issue 135 - Calendar - Simple “look ahead” for coming month
- Issue 747 - Translation/Languages - Persian (Farsi) LAnguage
- Issue 750 - Translation/Languages - French translation pack for 2.3
Fixes/Bugs Closed
- Added .ics to the end of the iCalendar url because Outlook is dumb;
- Fixed an issue where the Task Filters weren’t respecting the company selection ([http://forums.web2project.net/viewtopic.php?p=8419&highlight=#8419 details]);
- Fixed numerous UTF8 issues with Gantt charts;
- Fixed some tooltips issues for IE;
- Fixed Smartsearch highlighting;
- Fixed the .htaccess file for the new structures;
- Fixed the contact info block on the project view page;
- Fixed the error handling for arrays in CAppUI->setMsg;
- Fixed the LDAP authenticator - w2p_Authenticators_LDAP class;
- Fixed the loss password recovery;
- Fixed the misaligned images in various modules - all related to w2PtoolTip;
- Fixed the missing quotes in the captcha library that would create notices and block the image from showing;
- Fixed the system heartbeat to only check for updates once per week;
- Updated Smartsearch to respect the “module selection” box again;
- Updated the tooltips to be fixed-size instead of screen size-based;
- Issue 299 - Tasks - CSS problem on the “a” tag’s click event area
- Issue 326 - PDF Generation - Encoding issues from web report view to PDF - closed.
- Issue 391 - Tasks - Importing all tasks from another project (template) does not importing dependancies of source tasks - closed.
- Issue 429 - Gantt Chart Generation - Some character set encoding issue on Gantt charts
- Issue 528 - Files - ections to error 401
- Issue 581 - Translation/Languages - translation inkonsistent
- Issue 584 - Core Infrastructure - Anti Spam Security
- Issue 603 - Translation/Languages - Translation editor: backslashes in newline character (\n) are removed from both english and localized strings
- Issue 632 - Project Designer - Print function produces wrong charaters - closed.
- Issue 642 - Tasks Reminders - multiple emails sent to one assignee
- Issue 645 - Tasks - When tasks are imported from another project no reminders are added to the event queue
- Issue 652 - Calendar - Module Calendar does not show monthly view
- Issue 654 - Calendar - Tooltip Error on Calendar
- Issue 658 - Contacts - Email notifications not working for initial project creation
- Issue 666 - User Interface - Task error message not getting translated
- Issue 670 - User Interface - AJAX loading messagebox misplaced
- Issue 671 - Cosmetic/Typo - Typo in common.inc
- Issue 672 - Gantt Chart - Generation Gantt pdf fails
- Issue 676 - Calendar - Event filter in calendar view has no effect
- Issue 678 - Core Infrastructure - Autoload problem
- Issue 679 - Translation/Languages - Welcome page is not translatable
- Issue 687 - Calendar - Attendees are not saved
- Issue 692 - System Admin - LDAP Authentication Broken
- Issue 696 - Gantt Chart Generation - No captions in gantt chart
- Issue 698 - – none specified – .htaccess
- Issue 699 - Gantt Chart Generation - Milestone tasks on Gantt charts display dates in the wrong format
- Issue 700 - Core Infrastructure - suppressHeaders parameter
- Issue 702 - Core Infrastructure - function projectSelectWithOptGroup shows duplicate result
- Issue 709 - Calendar - Recurring events doesn’t show up in the daily view
- Issue 710 - Core Infrastructure - w2PtoolTip and apostrophes
- Issue 712 - Tasks - task_log_hours precision
- Issue 718 - Calendar - Date incorrect on UTC to local time conversion - Events
- Issue 719 - Projects - Gantt does not filter the projects by company, type, and owner
- Issue 722 - Calendar - suggest alternative time of meeting- invalid time format
- Issue 723 - Calendar - notify by mail option doesn’t work in calendar
- Issue 724 - Forums - Wrong path for “new entry” icon stock_new_small.png
- Issue 729 - Contacts - No error message displayed on error
- Issue 737 - Files - broken link to page 2
- Issue 740 - Gantt Chart Generation - Problem displaying dynamic Task in the todo Gantt
- Issue 743 - Forums - forum text formating does not expands new-line characters.
- Issue 744 - Project Designer - The “Move” functionality doesn’t work
- Issue 746 - System Admin - Deleting ALL user roles leaves the system in an undefined state.
- Issue 748 - User Admin - Unable to add new user
- Issue 749 - Calendar - Edit Event -> Project Name reverts to drop down (All)
- Issue 751 - Calendar - day calendar shows private task
- Issue 758 - Project Designer - project designer doesn’t consider timezone properly
Misc Changes/Improvements
- Added a function to load additional Javascript files in the footer;
- Added a multi-select as a possible field display type;
- Added deprecation warnings to catch remaining references to CDate, CustomFields, CW2pObject, and DBQuery classes;
- Added deprecation warnings to unused functions;
- Added module-based configuration screens;
- Added unit tests for CAppUI;
- Added unit tests for CDate;
- Added unit tests for CContact;
- Added unit tests for the new Base Controller;
- Applied the translator to the CTitleBlock;
- Cleaned up some translations issues:
- Added a warning in the Translation Manager if the locales files aren’t writable;
- Added an Italian translation for JScalendar;
- Deprecated CAppUI->getSystemClass() as its no longer needed in core;
- Deprecated Contacts->contact_order_by to use contact_display_name instead;
- Refactored controllers to make them testable & generally reusable;
- Refactored the Calendar module to use the proper formatting, a simplified controller, routing, and fixed notifications;
- Refactored the Contacts module to use consistent method names and have better routing;
- Refactored the Gantt Chart creation to be the same across all uses;
- Refactored the hook_search in CFiles, CFolders, and CForums;
- Removed an unnecessary query in the CustomField class because we have an autoincrement that does the same;
- Removed checks for PHP4;
- Removed numerous unused classes;
- Removed some unnecessary queries & joins;
- Removed the contacts_methods from the index screen for faster page generation;
- Removed unused Javascript;
- Replaced references to CDate with w2p_Utilities_Date;
- Replaced references to CustomFields with w2p_Core_CustomFields;
- Replaced references to CW2pObject with w2p_Core_BaseObject;
- Replaced references to DBQuery with w2p_Database_Query;
- Simplified the hook_search in most of the core classes;
- Simplified the Tasks addedit form to attach data with js instead of the subform processing;
- Updated all intval’s to int’s for faster casting;
- Updated Smartsearch to ignore our “ignore words” since we don’t index them anyway;
- Updated the ADODb library to v5.11;
- Updated the ajax loader’s placement, message, and placeholder image;
- Updated the autoloader to use pluralize to determine class names;
- Updated the CFiles module to create the file index as part of hook_cron instead of at upload;
- Updated the class hierarchies and autoloader;
- Updated the core themes to make them consistent whenever possible;
- Updated the hook calls to support oddly named modules;
- Updated the PHPMailer library to v5.10;
- Updated the themes for better XHTML/CSS validation;
- Updated the UpgradeManager to support dotProject 2.1.5;
- Updated the Xajax library to v0.6 to add JSON support;
- Updated w2PgetConfig to store the specified default value if it didn’t exist before;
- Issue 150 - Projects - Database Design Issues - Projects
- Issue 183 - Gantt Chart Generation - Change order of projects in multi-project Gantt chart
- Issue 395 - Tasks - Feature request: display user specific task priority in my to do tasks table
- Issue 595 - Core Infrastructure - During installation no check if database parameters are invalid
- Issue 624 - System Admin - List of countries out of date
- Issue 630 - Contacts - Country Selection in contact edit and company edit
- Issue 640 - Reports - Enhance Tasksperuser report with % assign displayed
- Issue 664 - System Admin - increase the module size limit for the installer
- Issue 673 - System Admin - system timezone: mark important admin settings in red
- Issue 680 - Translation/Languages - Translation of the file help.toc.hlp
- Issue 688 - Translation/Languages - Check write permissions on translation manager
- Issue 701 - Tasks - prevent removal of a task
- Issue 714 - Translation/Languages - Make add-on module names translatable
- Issue 717 - History - History module to capture all changes
- Issue 728 - Contacts - Required (mandatory) contact fields have not (*) indication
- Issue 730 - Files - Uploading file returns user to main Files dialogue not related Project/Task
- Issue 736 - Calendar - show event tooltip on project tab events
- Issue 755 - Contacts - Login user can’t see a contact he just created
Open/Known Issues
- '’This issue has undergone serious work in the v2.3 release. While we don’t consider it perfect, we believe it’s nearly complete.’’ The cascading dependencies are still not 100% but very close. Although long chains (A->B-C->D->E) work fine and tasks with multiple dependencies work fine, there are a limited number of scenarios where dependencies do not behave as expected.
- One such scenario is when you have a Dynamic Task A with children chain (B->C-D->E) and Task F which is dependent on Task A. If B, C, D or E shift, they shift the rest of the chain as expected and the Dynamic Task (A) as expected but unfortunately F does not get updated.
- If you upgrade from dotProject, you may have an oddity with your default theme/display as the name has changed. If this happens, edit your preferences, change to one of the existing themes, and save.
System Metrics
Here are some core metrics that may be of interest to the geekier among us.
By running these commands, we get the metrics below:
# Assuming web2project is the your base directory
php phploc.php --count-tests --exclude=../web2project/lib ../web2project/
php phpcpd.php --exclude=../web2project/lib/ --exclude=../web2project/unit_tests/ ../web2project/
- Lines of Code: 68118 (11084 of comments, 57034 of code)
- Overall Cyclomatic Complexity/LoC: 0.09
- Classes: 81 (81 Concrete, 0 Abstract)
- Lines of Code/Class: 840
- Class Constants: 6
- Methods: 783 (46 static, 737 non-static)
- Lines of Code/Method: 86
- Cyclomatic Complexity/Number of Methods: 8.01
- Functions: 217
- Constants: 63
- Test Classes: 13
- Test Methods: 487
- 2.10% duplicated lines of code (~1205)