03. Administrator's Guide

Getting Started

In this chapter you'll learn how to get activeCollab up and running on your own server. First, we'll describe all the server requirements necessary to run activeCollab nice and smoothly. Then, we will lead you through the installation process, one step at a time. Finally, we give some advice to help you make sure your copy of activeCollab is totally secure.

Let's get started!

System Requirements

activeCollab is a PHP-based application that must be downloaded and installed on a server in order to run (after purchasing a licence). Currently it is not available as a hosted service. The minimum system requirements that your web server must meet to run activeCollab are:

  • Web server with PHP4 or PHP5 support (PHP 4.3.9 or later) with mysql, PCRE, XML, ctype and tokenizer extension installed. activeCollab is known to work well on Apache and IIS. Other web servers might also work, but we haven't tested these configurations.
  • One MySQL database.
Important Note

There is no need for you to use commercial MySQL editions, free MySQL Community edition database will work just fine with your activeCollab. If you don't already have one, you can download your MySQL Community Server here.

We recommend the following system configuration:

  • Apache 2 with support to run PHP4 or PHP5 scripts.
  • PHP 5.2 or PHP 5.3 with mysql, PCRE, XML, ctype, tokenizer, gd, mbstring, iconv and IMAP extensions.
  • MySQL 5 with InnoDB storage engine enabled.
  • Memory limit set to 64MB (it is configured in your php.ini file). In most cases, 32MB will be enough, but in some rare occasions, more memory may be required.
Optional Extensions

The following PHP extensions are required for some optional features to work, but they are not required for the system itself to operate:

  1. If you wish to use CAPTCHA protection with the Public Submit module you will need to have GD extension enabled with FreeType support.
  2. If you wish to use the Incoming Mail module so activeCollab can read emails, post responses as comment or add new messages as Discussions or Tickets, your system must have the IMAP PHP extension installed.

To access and use activeCollab, your users will need to have a web browser (Microsoft Internet Explorer 6+, Mozilla Firefox 2+, Apple Safari 3+, Google Chrome) with JavaScript enabled. activeCollab is optimized for 1024x768px or higher screen resolution.

Supported Web Browsers

*Logos and product names used on this page are trademarks or registered trademarks of their rightful owners.

1. Test if your server meets activeCollab System Requirements

To see if your system meets the system requirements, you can use the probe.php script, designed specifically for this purpose.

Here's how:

  1. Download the probe.php.zip file here;
  2. Unpack and upload the probe.php file to your server;
  3. Run it through your web browser;
  4. Optionally, you can open the probe.php file in your favorite text editor and set the database connection parameters in the Database Settings section at the beginning of the file. Once these parameters are set, save the file on the server and run it again.

It will run a check of your platform and additionally try to connect to the database and see if it meets the system requirements.

In action: probe.php

Installation

The activeCollab installation can be completed in six simple steps:

  1. Ensure that your server meets activeCollab's System Requirements. If your server does not, or is not properly configured, you will not be able to run the installation tool;
  2. Create a MySQL database where activeCollab will store the data. If you already have a database set up, this step is optional;
  3. Download the activeCollab installation package and your license file from your profile page on the activeCollab website;
  4. Upload the contents of the /for-upload folder onto your server;
  5. Run the installer tool;
  6. Log in for the first time and verify that the system is working properly.

Read on to learn more about each of these steps.

1. Meeting System Requirements

Before you start the installation, please make sure that your server meets the activeCollab System Requirements. activeCollab works well on most platforms which have a web server with PHP support and MySQL database.

To see if your system meets the system requirements, use the probe.php script, designed specifically for this purpose.

Here's how:

  1. Download the probe.php.zip file here;
  2. Unpack and upload the probe.php file to your server;
  3. Run it through your web browser;
  4. Optionally, you can open the probe.php file in your favorite text editor and set the database connection parameters in the Database Settings section at the beginning of the file. Once these parameters are set, save the file on the server and run it again. It will run a check of your platform and additionally try to connect to the database and see if it meets the system requirements.
In action: probe.php

2. Creating a Database

activeCollab installer will not created a database for you, so please make sure that you have a database available for your activeCollab installation before continuing with the install process. If you don't have a database, you can create it by using your favorite MySQL administration tool (phpMyAdmin, for instance) or contact your system administrator to create a database for you:

Creating a new database using phpMyAdmin

After creating the database, write down the following details:

  • The database host name (usually "localhost") as well as the database username and password;
  • The name of the database that you just created.

activeCollab installer will ask for the same details later and you won't be able to perform the installation without them.

3. Downloading activeCollab

Before you can install activeCollab, you'll need to download two files from your profile page on the www.activeCollab.com website, both the:

  1. Installation package;
  2. License file.

Both files are available in your www.activeCollab.com profile. To access the installation and license files, please login with the same account you used to purchase the license and, once logged in, click My Profile in the top right corner of the page:

All your licenses (you can have more than one license purchased from the same account) will be listed on here. Both the installation package and license file download links are available in the license details block:

4. Uploading Files to the Server

Once you have downloaded and unpacked the installation package using your favorite ZIP utility, you will see the following files and folders:

  • /for-upload - activeCollab files that you need to upload to your server;
  • license.txt - the activeCollab End User license agreement;
  • readme.txt - basic information about activeCollab and links to additional resources;
  • release-notes.txt - information about both current and previous releases.

You do not need to upload all these files to your server. Instead, you should upload only the contents of the /for-upload folder:

5. Running Installer Tool

Once you have uploaded files from the /for-upload folder to your server, you can run the activeCollab installer. The installer tool can be run with any web browser. In fact, if you try to open any of the activeCollab pages at this point, the system will inform you that activeCollab is not yet installed and will offer you a link to the installer tool instead.

Click on that link to start the installer:

The installer will then ask you to provide the:

  1. activeCollab License file that you downloaded in Step 3;
  2. Email address and password of the administrator account (it's usually your own account);
  3. Name of your company or organization;
  4. Database connection parameters that you've prepared in Step 2;
  5. Your acceptance of the activeCollab License Agreement.

If the installation is run properly, the system will display several OK messages and provide you with a link to the login screen, where you can use the administrator email address and password (which you defined earlier) to login:

Note

After you have completed the activeCollab installation, you should delete the /public/installer folder from your server for security reasons.

6. Verifying that the System is Working Properly

After you have run the Installation tool and deleted the /public/installer folder, you can visit your new activeCollab setup. If everything has gone well, the system will display a simple login screen where you can login using the administrator username and password, which you provided during the installation:

If you don't see the login screen or see an error message or blank page instead, please consult the Troubleshooting guide or contact our support team.

7. Importing the data form the Hosted Demo

If you were evaluating activeCollab before you have decided to purchase the license, you can have exactly the same setup as you created in the Hosted Demo in your installed activeCollab. All you need to do is to import your demo database into your hosted activeCollab.

Before making the actual import you have to get the demo data. They are available on your www.activeCollab.com profile page under the Export data link.

activeCollab Small Biz and Demo Data Import

Please note that our Hosted Demo is a fully featured activeCollab Corporate. If you have purchased activeCollab Small Biz license you will not be able to export your demo data. What you should do in this case is to contact us and let us know about the issue. We will help you set your demo to match the activeCollab Small Biz features, export the data afterwords and send it to you via email.

Now that you have the exported archive here's what you need to do to import it into your activeCollab:

  1. Upload the contents of all directories from the archive file to respective directories at your activeCollab setup (overwrite the existing files);
  2. Delete all tables from activeCollab database and import the data from .sql file located in the archive;
  3. Delete all files having "cch_" in their name from /cache directory;
  4. Delete all files having "%%" in their name from /compile directory;
  5. Edit /config/config.php and set table prefix to your instance name. For example, if your demo instance was http://somename.activecollab.net, then you should set the table prefix to "somename_".

After completing all of these steps, you should be able to see all your data from the Hosted Demo in your installed activeCollab.

If you have any difficulties, feel free to contact us, and we'll help you set your activeCollab.

Securing Your System

activeCollab application is secure right out of the box, but there are still a couple of things that you can do to make your own setup of it as secure as possible:

1. Install the System Behind the Document Root

Installing the system above the site root ensures that only files from the /public folder are publicly available, while all other files are not accessible on the web. Even though the system encodes file names and comes with .htaccess rotection by default for folders with sensitive data (/upload, /thumbnails and other), the very best approach is to have them installed above the site root.

Instructions on how to set up the activeCollab in this way are available here: /public Folder as Document Root.

2. Use SSL Encryption

activeCollab is protocol agnostic, so if your server supports SSL and has proper certificates installed, it will work on HTTPS as well as on HTTP. All you need to do is to run the Installer on the proper protocol and it will use the HTTPS URL automatically.

If you have activeCollab already installed on HTTP, and then decide to add a certificate later so it can work over HTTPS, you can change the protocol in the config/config.php file:

define('ROOT_URL', 'http://example.com/public')

All you need to do is to use https:// instead of http:// protocol in ROOT_URL value:

define('ROOT_URL', 'https://example.com/public')

After you have updated the ROOT_URL don't forget to delete files with "cch_" in the beginning in your /cache folder and files with "%%" from the /compile folder.

Warning

When you use the system over SSL, browsers will not cache CSS, JavaScript or image files. This may have a significant impact on how quickly pages are loaded. Due to this, we recommend using SSL only when you are working with sensitive data.

Configuration

In this section, you'll learn how to configure activeCollab the way you want it and get the best out of all the different features available to you.

General Settings

You can configure many of the general options in activeCollab from the General Settings page. To access it, select the General tool in the Administration area:

From here you can configure the following settings:

  1. Show Welcome Message - WWhen set to Yes, activeCollab will display a Welcome Message instead of the Dashboard after you login to the system for the first time. This setting is automatically turned of when the Administrator clicks the Hide Welcome Message button on the Dashboard.
  2. Use Client Logo for Projects Without Custom Icons - When this option is selected and when no project icon is already set, activeCollab will use the appropriate client's logo as a project icon instead. You can learn more about this handy feature in this article.
  3. Default Theme - Here you can change the look of activeCollab by choosing between the Default and Sandbox themes, that are shipped with it (or choose a custom theme). Users can override this setting on their profile page.
  4. Default Assignments Filter - Sets up the default filter that will be used when someone visits the Assignments page. Users can override this settings on their profiles, if they wish.
  5. Project Templates Group - When this option is not set, activeCollab lists all available projects in the Project Template drop-down of the New Project form. Use this settings to narrow down the list to selected projects only that you wish to use as Project Template.
  6. When User Logs Out - By default, users are redirected to a login page after they log out of activeCollab. However if you want you can set a custom web address for people to be redirected to. This is great if you want users to return to your website after they log out, for example.

Date and Time Settings

You can make changes to the time and date format in activeCollab (for example, changing the time zone) via the Date and Time settings page. To access this, just click on the Date and Time icon in the Administration area:

The following options are available:

  1. Time Zone - The default time zone that activeCollab should use;
  2. Daylight Saving Time - When set to Yes, activeCollab will automatically calculate the Daylight Saving Time. Please note that activeCollab does not automatically change Daylight Saving Time settings;
  3. First Day in Week - Set when you want your working week to start in activeCollab. By default this is Sunday;
  4. Date Format - Set the format that activeCollab will use to display dates;
  5. Time Format - Set the format that activeCollab will use to display the time.

All of the options on the Date and Time Settings page will also be set as default settings for other users, however each user may change these settings to suit their own preferences via their profile page.

Mailing Settings

The Mailing settings page enables you to configure how activeCollab will send emails. To access this page, click the Mailing icon from the Administration area:

There are two ways in which activeCollab sends emails:

  1. Using the Native Mailer. In this case, activeCollab will use the email server configured in your php.ini file. If the PHP is properly configured, activeCollab will connect to it automatically without any additional parameters.
  2. Using a SMTP server. activeCollab connects to a SMTP server and sends out emails through that.

After a successful installation, the Native Mailer is selected by default and emails should work properly, if it is configured in php.ini. If it is not configured, you'll need to provide some SMTP connection parameters. To check if the SMTP parameters you provided are working and activeCollab can connect to the server, use the Test Connection button on the Mailing page.

When you've finished configuring your email settings, please take a look at this article to learn how you can test if activeCollab is sending email messages correctly.

1. Notifications From Settings

activeCollab lets you set the email address and name that users will see as the From address when they receive email notifications.

By default, activeCollab will use the email address provided by the administrator when it was installed. To change it to something else, just go to the Administration > Mailing page and in the Notifications From section and set a new name and email:

Warning

Many SMTP servers do not allow Relaying of messages (i.e, emails sent to the server from other locations) when the sending email address is not the same domain as the SMTP server. In this case, make sure that the From Notifications address is from the same domain as the SMTP server.

Roles and Permissions

Roles enable you to define what people can and cannot do in your activeCollab installation. You can set-up and manage roles in the Roles section of the administration area:

ou should also be aware that there are two type of roles in activeCollab: System Roles and Project Roles.

1. System Roles

System Roles define which permissions users have across the whole of activeCollab (such as ability to log in and use the system, access the administration area or manage projects etc.).

activeCollab comes with five predefined roles that you can start using immediately. The first three of which are intended for members of your own company:

  1. Administrator - Has permission to access the whole system, including access to the Admin panel. This Role overrides all other settings, including any Project Roles the user may have.
  2. Project Manager - Has all project management related permissions, but can't access the Administration panel or manage other people's accounts. This role lets users create new projects; gives them access to all existing projects; and the ability to manage any project information regardless of any Project Roles the user may have.
  3. Member - The preferred role for members of your company. Users set as Members can access only projects they are assigned to; but can see objects marked as private. Their project level permissions are defined by their Project Role. Members can also create new projects and create their own assignment filters.

The fourth and fifth roles are designed for people who are not included in your company (mostly clients). These people can only see projects they are involved with and can't see objects marked as private. Administrators, Project Managers and Project Leaders can control their access with Project Roles or even defining custom permissions. They cannot create new projects, use assignments filters or use the time report functionality.

There's only one difference between Client Company Member and Client Company Manager: the Client Company Manager can update contact information for his company and add new people to it in your activeCollab setup. With this functionality you can let clients handle some basic company and user administration on your behalf.

If none of the predefined Roles look right for you, you can create new roles or change existing ones to fit your needs:

Every System Role has the following permissions that you can grant or forbid:

Permission  Description
Module 
system_access This permission sets whether a user can access activeCollab. Set this to No if you don't want to delete a specific user accounts but you want to restrict them from accessing the system for the moment. System 
admin_access Set this permission to Yes if you want to give administration permissions to users in a selected role. This permission overrides every other permissions and additionally gives users access to the Admin panel. System
project_management Project managers have full permission for everything relating to projects in activeCollab. They can see and access any project and have complete access inside each one. Project managers can create projects even if add_project permission is set to No!
System
people_management  People managers have all permissions regarding account management in the People section. They can create new users or manage existing users and companies without any restrictions.
System
add_project Sets whether user can create new projects or not. When creating a project, members of client companies will see only people and companies they have previously worked with. They will not see everyone! Administrators and project managers can always create new projects no matter what is set here! System
manage_company_details Set to Yes if you want to allow a user to manage company details. The user will then be able to change the company information of the company that they already belongs to, as well as being able to add new people and receive/access Invoices issued to it. Please note, if no-one from a company has the correct permission, you won't be able to send email notifications for new invoices to anyone in it, because there will be no eligible recipient for such an email! System
can_see_private_objects Set to Yes for roles that must be able to see objects in activeCollab marked as private. Usually, this permission is set to Yes only for members of your own company and to No for the client roles. This makes it easy to hide internal discussions or other confidential information that should be kept in-house. System
manage_trash If set to Yes this role will enable users to manage items that has been trashed by any other user: delete them premaritally or restore them from the trash. When set to No this role will enable user to trash the item, but not to see the Trash icon, or to manipulate further with trashed data. System
manage_assignment_filters Set to Yes only for roles that should be allowed to either create new or manage existing assignment filters. If set to No, users will be able only to use existing filters, but not create new or change the settings of existing ones. Resources
use_time_reports This permission determines whether a user can use the time reports functionality or not. Time reports are available both globally and per project. If this permission is set to No, the user will not be able to see or use any time reports. Time Tracking
manage_time_reports Set to Yes for roles you want to be able to create or manage time reports. Time Tracking
can_use_status_updates Set to Yes to allow a user to use the Status Update tool. Status
can_use_incoming_mail_frontend When this permission is set to Yes, users will be able to access email conflict resolution tool and resolve any potential issues with incoming emails. Incoming Mail
can_use_documents This permission enables users to access the optional global Documents section. When they have access to this section, users will be able to see the Docs icon in the toolbar and view all files placed there. Documents
can_add_documents This permission enables users to upload new files and post new text documents in the global Documents section. Please note that this permission is ignored if the role does not also have the can_use_documents permission set to Yes. Documents
can_manage_invoices When set to Yes, person with this permission will be able to create new Invoices, issue existing invoice drafts, mark them as billed or canceled, and to delete Invoices. Invoice

2. Project Roles

Project Roles are re-usable sets of project permissions that define what a user can see and access within a specific project. As project roles are defined on a project-by-project basis, users can have several Project Roles, different for each project they are involved with. When adding a user to a project you can select one of the earlier defined project roles or create a custom set of permissions for that particular project:

Remember

Administrators, Project Managers and person set as the Project Leader will automatically have all permissions for that project, as their System Role overrides their Project Role in this case.

Project Role permissions are set for each type of project object (eg. ticket, milestone) and can have four levels:

  1. No access - The user will not be able to view or work with this object in this particular project. The tab for the object will also be hidden from their navigation. Objects of this type (from this project) will not be shown to the user anywhere in activeCollab. For example, by setting 'No Access' to Tickets for a user, she will never be able to see or access any of the Tickets from that project or see the Tickets tab.
  2. Has access - The user can see the tab and access it, but he or she cannot create new objects or manage existing ones.
  3. ... and Can Create - The user has access and can create new objects of that type, but cannot manage existing objects.
  4. ... and Can Manage - As well as being able to view and create objects of this type, the user can also edit and delete existing items.
Important Note

If a project object (Ticket, Milestone or Task) is not assigned, then all users who have 'Has Access', 'Can Create' or 'Can Manage' project permissions set to Yes will be able to manage that project object. This is a default system behavior that enables users to access and assign themselves to project objects such as Tickets, Milestones or Tasks. If someone os already assigned to a ticket, milestone or task permissions will work as expected.

Modules

activeCollab is a flexible system which can be extended with optional extra modules. Administrators can manage these modules using the Modules section in the Administration panel. Two lists are displayed on this page:

  • All modules that are currently installed and in use - Installed Modules
  • All modules that are available, but not yet installed - Available Modules

1. Installation

To install a module, find the one you're interested in from the Available Modules list and click the Install button. The module will then be available for use in just a few seconds.

If the module you wish to use is not listed in the Available Modules list, then you will need to upload its files to your activeCollab setup. Modules are usually come as in two archived files:

  • application.zip
  • assets.zip

Unpack and upload these files to your activeCollab setup in the following way:

  • the content of application.zip should be placed at the /activecollab/application/modules
  • the content of assets.zip should be placed at the /public/assets/modules

Once the files are uploaded, refresh the Modules page and the new module will appear in the Available Modules list. One click on its Install button will do the rest.

2. Removing a Module

To uninstall a module go to ** Administration > Modules**, and click the name of the module you wish to remove from the Installed Modules list. A new page with all the Module's details will appear. Now simply click the Uninstall button, and that module will be removed from your activeCollab setup. It will not be completely deleted, but instead moved to the Available Modules list where you can install it again in future if you wish.

If for some reason your activeCollab setup is not working correctly because of a broken module and you can't access the administration panel, then you can uninstall the plugin manually:

  1. Open the acx_modules table and remove the plugin record from the table;
  2. Remove the plugin form /activecollab/application/modules and /public/modules folders;
  3. Clear all cch_ files from the /cache folder.

Master Categories

Master Categories enables you to create a single classification system for your data that you can use across all your projects. In this way, you can set how your information is grouped once and use those classifications across the whole of activeCollab.

From a freshly installed copy of activeCollab you’ll only get a single defined category - General. To add new ones, visit the Administration > Master Categories area, where you can set up all the categories you want. You are also free to remove the General category by clicking the delete icon. However if you don’t create a new category in it's place, activeCollab will retain the General category so there is always at least one category. That's why you may still see the General category in your projects (but not in the Master Categories list) as activeCollab must always have at least one category defined. On the other hand, if you remove General and create a new category, the newly created category will be displayed.

In the Master Category setup you are free to create as many categories as you wish and there is no limit to the number of categories allowed by activeCollab.

Items that can be placed in Categories in activeCollab are Pages, Tickets, Files and Discussions. In the Master Category section you can also create different sets of categories for each type of project item. You can learn how to create such setup in this tutorial.

Important Note

Newly created Categories are applied only to new projects. They will not work retrospectively, and will not be included in any existing projects in activeCollab, which is why you may wish to define all your major categories when first using the system.

Localization

activeCollab 1.1 and later versions come with localization support. This enables you to translate the interface into any language you want; to set the date and time formatting; and much more.

1. Enabling Localization Support

By default, localization support is disabled. In order to enable it, open the config/config.php file and find the following line:

define('LOCALIZATION_ENABLED', false);

Then change the value from false to true. If this line is not present, then add the following line into the config/conifg.php file:

define('LOCALIZATION_ENABLED', true);

Also, make sure that the /custom/localization directory is writable (chmod-ed to 777).

When localization is enabled, the Languages tool will automatically become available in the Administration area:

Another feature will also be made available after enabling Localization - allowing each user to choose any of the installed languages (that you have set-up in the system) as their default language when visiting activeCollab. They option can be found on their profile pages.

2. Working with Translations

When localization is enabled, you'll have an opportunity to add a new language yourself. To do this, insert the language name and language code into the New Language form on the Languages page and click submit:

After the language file is created, you will be able to create a translation file based on dictionaries. A Dictionary is the index of words used in a particular activeCollab module. In order to make a translation you will need to create a new file and to provide a translation for every phrase used in a dictionary. If you don't translate some of the phrases then activeCollab will use the default, English version:

All of your translations will be available in the /custom/localization folder, so you can back them up. If you wish, you can also upload them to the activeCollab Downloads section and share your translation with the rest of the activeCollab Community.

3. Importing and Exporting Translations

Members of the activeCollab community often share the translations they create with others. These translations are distributed in two formats:

  1. Single XML file. This option is available since activeCollab 2 and it was added for easier distribution and management. Please check this article to learn how to import this type of translation package.
  2. Multiple PHP files. This option was the only way of distribution in activeCollab 1.1. Even though the single XML package is much more convenient, many users, especially those who used activeCollab before activeCollab 2, still prefer this way of packaging translations. Please check this article to learn how to import this type of translation package.

To export a translation, click on the little Export icon next to the language on the Administration > Languages page:

Compatibility and Requirements

the XML Import / Export feature was added in activeCollab 2 and is not available in previous versions.

For this feature to function properly, XML extension needs to be available to PHP. If XML extension is not installed, the Import Language button will not be available and Languages and page and a warning will be displayed.

4. Importing Translation from XML File

The standard way of distributing translations since activeCollab 2 is by packaging them in a single XML file. To import one of these files, go to the Languages page in the Administration area and click on the Import Language button in the top-right of the page:

In the following page, select the XML file and upload it. activeCollab will then scan all the information in the file and provide you with all relevant details, including any possible incompatibilities:

If, after reviewing the information in the file, you'd like to continue, just click the **Finalize Import" button to finish the process. The new language option will be available in the Languages list once the Import procedure is complete.

5. Importing translation from Multiple PHP Files

In activeCollab 1.1 translation files were distributed in the form of multiple PHP files, where each file had the translations for a single activeCollab module. This type of translation package can still be imported in activeCollab 2 and later though.

To do this, first create a new language:

Then check your /custom/localization folder where a new folder should have been created with the name of the locale you used. That is the folder where all the PHP files from translation package should be placed:

6. Email Templates

Once a localization is enabled, it can also be used to translate the templates used by activeCollab's notification emails. If a user has chosen a different default language for their activeCollab set-up then they will receive emails in that language (should a translation be available). If a translation is not available, emails will be sent in English.

7. Using Localization to Rename Features

activeCollab does not support tools that allow you to change the names of different system features or project sections but, if you really need that functionality, you can use the Language tool to achieve this:

  1. Enable localization support and than create a new language on the Administration > Languages page. Though you should not use the en_US.UTF-8 or en_US locale names (see the Warning box below for more details).
  2. Translate all strings where the name that you want to change appears.
  3. Set the newly created language as the default language, and other users will also see it by default. To set a language as default, click on the checkbox on the left of the language on the Administration > Languages page.
Don't use en_US or en_US.UTF-8 locale

When creating a new language, please don't use the en_US or e_n_US.UTF-8_ locale. That locale is reserved for the default language only and if you try to use it for a custom language, any translations you make will be ignored by default.

Maintenance Mode

Since activeCollab 2.0, activeCollab can be put into a special Maintenance mode. When activeCollab is in maintenance mode, only people set as Administrators will be able to use it. All the other users will receive a Service Unavailable message.

1. Enabling Maintenance Mode

To enable Maintenance Mode, please click the Maintenance Mode icon in the Administration section:

Set Enable Maintenance Mode to Yes and click Submit, to instantly make the system unavailable to all non-administrative users. Additionally, you can provide maintenance message to users by setting a Maintenance Message value. This message is used to explain why the system is unavailable and when it will be back online. HTML is not supported, but activeCollab will preserve line breaks and automatically detect links.

2. System Maintenance Mode

On top of the regular Maintenance Mode, activeCollab also has a System Maintenance Mode:

The System Maintenance Mode is a specific mode used when you want to block access to the entire system and don't want anyone to be able to log in, even administrators.

This mode is useful when you are upgrading activeCollab, for example. Because this mode is dependent on a single file, activeCollab will display whatever message you set while other files are being upgraded.

The System Maintenance Mode mode can be turned on by setting the MAINTENANCE_MESSAGE option in the config/config.php file to whatever message you want to display to your users. For example:

define('MAINTENANCE_MESSAGE', "We are upgrading the system to the latest version. It'll be back online in the next couple of hours.");

When you want to turn it off, simply remove MAINTENANCE_MESSAGE declaration from the configuration file.

Scheduled Tasks

Some activeCollab modules need to be run periodically in order to perform their tasks and functionality. For instance, the Backup module should be run daily if you wish to create daily backups.

All of these events are executed by periodically making a web request on specific activeCollab URL/URLs or executing specific PHP files through command lines (check this article for details). There are three time periods which activeCollab supports:

  1. frequently - Should be executed frequently. We recommend every 3 minutes, but you can use any value between 1 - 5 minutes.
  2. hourly - Should be executed every hour.
  3. daily - Should be executed every day.

Command examples with exact paths and URL/URLs that need to be triggered are available on the Administration > Scheduled Tasks page:

Note

activeCollab has three different waysfor generating URLs. Because of that, URLs in your system may look a bit different to the URLs displayed in a screenshot or used in other examples.

Scheduled Tasks page in Administration is also used to check when was the last time these events were triggered, so it's useful for troubleshooting actions that are executed on events triggered by scheduled tasks.

1. Methods of Triggering Tasks

Scheduled tasks in activeCollab can be triggered in two ways:

  1. by triggering a task URL with a utility such as curl, wget, etc.
  2. by executing a specific PHP file using a PHP command line utility

Both of these approaches have advantages and disadvantages. For example, using PHP to trigger files skips the web server and the overhead that it adds, but you will need to have the PHP command line utility configured on your server. On the other hand, triggering a URL always works when activeCollab is properly configured, but it's a little slower because the web server is added to the mix.

Examples:

/usr/bin/curl -s "http://url/of/hourly/task" > /dev/null
/usr/bin/php "/path/to/activecollab/tasks/hourly.php" > /dev/null

The exact commands you need to execute are listed on the Administration > Scheduled Tasks page of your activeCollab installation.

2. Direct Access Protection

Scheduled Task URLs can be protected from direct visits by adding the first five letters of your license key as a code parameter:

http://example.com/collab/public/index.php?path_info=frequently&code=QGNig

Protection is automatically turned on for all new installations since activeCollab 2.1. If you upgraded from a version older than 2.1 to the latest version, please add the following code to your config/config.php file in order to enable it:

define("PROTECT_SCHEDULED_TASKS", true);

Note that you'll need to update your cron configuration once you have done so because this changes the URLs that need to be pinged.

3. Trigger Tasks with cron (Linux, BSD etc)

In order for events to work you'll need to set-up some kind of scheduling software to execute task scripts or ping specific activeCollab URLs at specific times.

For example, on UNIX you can use cron and PHP or curl to achieve this. Open crontab for editing by executing:

crontab -e

in your command line. Then insert the following text into the field:

*/3       *      *       *       *       php "/path/to/activecollab/tasks/frequently.php" > /dev/null
0         *      *       *       *       php "/path/to/activecollab/tasks/hourly.php" > /dev/null
0        12      *       *       *       php "/path/to/activecollab/tasks/daily.php" > /dev/null

and save it. This will tell PHP to execute task files:

  1. Every 3 minutes for frequently tasks.
  2. On an hourly script on 0 minute of every hour.
  3. On a daily script every day at noon.

If the PHP command line interface is not available on your server, you can use curl to request specific URLs to trigger events. activeCollab behaves the same way as task files, but instead of using a PHP command line utility, tasks are invoked by the web server. Here are the commands that you'll need to set in the crontab file:

*/3       *      *       *       *       /usr/bin/curl -s "http://url/of/frequently/task" > /dev/null
0         *      *       *       *       /usr/bin/curl -s "http://url/of/hourly/task" > /dev/null
0        12      *       *       *       /usr/bin/curl -s "http://url/of/daily/task" > /dev/null

4. Trigger Tasks with Scheduled Tasks (Windows)

On Windows you can also use Scheduled Tasks to trigger scheduled tasks in activeCollab. To set-up Scheduled Tasks on Windows XP, Vista and Windows 7 (as well as Windows 2003 Server or later) you can use schtasks.exe. To do so, open the command line and type in the following commands:

schtasks /create /ru "System" /sc minute /mo 3 /tn "activeCollab frequently job" /tr "C:\php\php.exe C:\activecollab\tasks\frequently.php -f"
schtasks /create /ru "System" /sc hourly /st 12:00:00 /tn "activeCollab hourly job" /tr "C:\php\php.exe C:\activecollab\tasks\hourly.php -f"
schtasks /create /ru "System" /sc daily /st 12:00:00 /tn "activeCollab daily job" /tr "C:\php\php.exe C:\activecollab\tasks\daily.php -f"
Note
  1. Use the real path to your php.exe file.
  2. Use exact paths to frequently.php, daily.php and hourly.php files, as found on the Administration > Scheduled Tasks page.

5. Trigger Tasks with launchd (Mac OS X)

On Mac OS 10.4 Tiger or later, Apple recommends that you use launchd instead of cron, xinetd, mach_init, and init. Tasks are defined as XML files that tell launchd what to do and when.

To define the three scheduled tasks that activeCollab requires, please create the following files in the /Library/LaunchAgents folder and make sure that you set the correct task URLs (you can find them on the Administration > Scheduled Tasks page of your activeCollab setup):

1. com.a51.activeCollabFrequently.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.a51.activeCollabFrequently</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/curl</string>
        <string>-s</string>
        <string>"http://activecollab.dev/public/index.php?path_info=frequently&amp;code=CODE"</string>
        <string> &gt;</string>
        <string>/dev/null</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StartInterval</key>
    <integer>180</integer>
</dict>
</plist>

2. com.a51.activeCollabHourly.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.a51.activeCollabHourly</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/curl</string>
        <string>-s</string>
        <string>"http://activecollab.dev/public/index.php?path_info=hourly&amp;code=CODE"</string>
        <string> &gt;</string>
        <string>/dev/null</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

3. com.a51.activeCollabDaily.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.a51.activeCollabDaily</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/curl</string>
        <string>-s</string>
        <string>"http://activecollab.dev/public/index.php?path_info=daily&amp;code=CODE"</string>
        <string> &gt;</string>
        <string>/dev/null</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>12</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

These settings will define following tasks:

  1. A frequently task that fires every 3 minutes;
  2. An hourly task that fires at first minute of every hour;
  3. A daily task that fires every day at noon (the server's time, not activeCollab's).

To see if everything is working properly, periodically check the Administration > Scheduled Tasks page to check the last time tasks were executed successfully.

6. Modules Dependent on Scheduled Tasks

The following modules are dependent on Scheduled Tasks:

  1. System module - Requires an hourly event to clean-up the cache;
  2. Backup module - Requires a daily event to create daily backups;
  3. Incoming Mail module - Requires a frequently event to check POP3 and IMAP mailboxes. A daily event is also used to clean-up old activity logs;
  4. Source module - Requires a frequently task to check repositories for new revisions and read revision information
Note

This list applies to activeCollab 2.3. Custom modules may require any of the three events triggered by Scheduled Tasks to work properly.

Incoming Mail

Incoming email functionality was introduced in activeCollab 2.1 and it enables the system to check any number of POP3 or IMAP mailboxes and read emails from there. Messages that are found in these mailboxes are then imported into activeCollab and sorted into the correct part of the system.

When a message is imported from the mail server, activeCollab does the following:

  1. Checks if the message is a reply to a notification previously sent by the system (eg. a notification about a new ticket, comment, status change etc.). If it is a reply to a notification, the message will be imported and posted as a comment on the relevant item. For example, if a user replies to a notification about a ticket being open, activeCollab will import the reply as a comment to that ticket.
  2. If an email message is not a reply to a notification, the system executes the default mailbox action. The default action can be the creation of a new ticket or discussion in the selected project. Read more about the default mailbox action here.
  3. When activeCollab creates a ticket, discussion or a comment, it will import all files attached to that email message and attache them to a newly created ticket, discussion or comment.
  4. Once imported, the original email message is deleted from the POP3 or IMAP server. Because of that, we do not recommend that you use your personal or business email addresses for incoming mail.
Dependencies

For incoming mail to work properly, the following conditions needs to be met:

  1. IMAP extension needs to be installed in your PHP setup.
  2. If you are checking mailboxes over a secure connection, PHP will also need to be compiled with SSL support.
  3. Inboxes are checked on frequently tasks, so Scheduled Tasks need to be configured.

You can learn how to setup Incoming mail from the scratch in How to setup Incoming Mail tutorial.

1. Configuring Mailboxes

activeCollab can check any number of POP3 and IMAP mailboxes. To define them, go to the Administration area and from the Mailing section click on the Incoming Mail icon:

On the following page, you will see a list of all defined mailboxes. Click the Add Mailbox button to define a new mailbox:

On the New Mailbox form you'll be able to define:

  1. Mailbox details, such as the email address that needs to be checked and the mailbox name that will be displayed in the list of mailboxes.
  2. Connection parameters like address and port; the mailbox that needs to be checked; security settings etc. When you set all the server and mailbox settings, you can use the Test Connection button to test the connection and see if everything works correctly before saving the mailbox.
  3. he default automated action that is executed when an email that is not a reply to a notification is received by activeCollab.

2. Automated (Default) Mailbox Action

When activeCollab receives a message that is not a reply to a previous notification, it will use the default mailbox action configured when the mailbox was defined to process the email:

These settings tell activeCollab to either create a ticket or a discussion in the given project.

Note

A single mailbox can create tickets or discussions in only one project, but this does not limit notification replies. When a user replies to a notification, comments will be created in the appropriate project and attached to the relevant item.

One important thing to note is that is that the mailbox enforces project permissions by default. This means that all messages sent by people who are not part of that project can result in a conflict that will need to be resolved by an administrator. If you don't wish project permissions to be enforced, you can enable the following options:

  1. Accept emails from all activeCollab users - eck this option if you wish to allow the mailbox to accept messages from all users registered in the system even when they are not involved with the target project.
  2. Accept emails from unregistered users - Check this option if you want the mailbox to accept messages from users who do not have accounts in your activeCollab installation.

3. Resolving Incoming Mail Conflicts

If, for any reason, activeCollab is not able to process an email message automatically, it will not discard it (like some other applications!). Instead, it will create a conflict notification to let an administrator resolve the problem. When there is such a conflict, the Inbox icon will show up in the toolbar and display the exact number of conflicts:

Click the Inbox icon to open the Conflicts page. This page lists all conflicts that need to be resolved and shows the reason why activeCollab was not able to handle the messsage automatically:

Click the Resolve icon on the right to open the conflict resolution tool and see message properties. activeCollab will pre-load fields based on the mailbox rules and let you change them:

The administrator has the final word regarding conflict resolutions. Once he or she submits the form, activeCollab will accept all the properties that are submitted regardless of permissions or restrictions.

Massages that resulted in conflict can also be deleted. To delete a message and remove it from Conflicts page, click on the Remove icon on the right.

Invoicing

The invoicing module allows you to prepare and issue invoices, as well as track payments in activeCollab. It is also designed to integrate well with activeCollab's time tracking and enables users to create invoices based on the time entries they have logged. The invoicing module will also update the status of the appropriate time record automatically whenever a client makes a payment for completed work.

1. Installing the Module

The Invoicing module is not installed by default. To install it, go to Administration > Modules where you can see it in the list of Available Modules:

Click on the Install button and follow the on-screen instructions.

Now that you have installed the Invoicing Module, make sure to give access to the Invoice module only to the people you wish. This module restricts invoice management for all roles by default. Only people who have can_manage_invoices permission set to 'yes' will be able to use this module.

2. Configuration

All adjustments to the Invoicing Module can be made within the Invoicing section, which can be found in the Admin pannel after installation of the module is completed.

The following options are available:

  1. Company Identity lets you add information about your company that will be added to each invoice, such as company name, address, logo, etc.
  2. PDF Settings are used to configure the PDF generator. You can set up the page format and orientation as well as the colors that will be used.
  3. Number Generator is a simple tool that automatically generates invoice numbers as they are issued. Numbers are generated based on whatever pattern you choose.
  4. Item Templates are commonly used invoice items, such as specific services or products that you regularly sell. activeCollab supports an unlimited number of item templates.
  5. Note Templates let you define frequently used invoice notes. These notes may be payment instructions, tax information and more. There is no limit on the number of note templates that you can define.
  6. Tax Rates page is used to configure all tax rates the system will be working with. There is no limit on the number of tax rates that can be defined.
  7. Currencies page is used to define all currencies that the invoicing module should support. The number of currencies you can use is not limited, so you can define as many as you wish.

Public Submit

The Public Submit module allows people who don't have an activeCollab account to post Tickets in one of your projects using a simple web form available on your website.

System Requirements

activeCollab 1.1 Corporate or later. In order to enable CAPTCHA protection you will need to have the GD extension enabled with FreeType support. CAPTCHA protection is optional, but recommended.

1. Installation and Configuration

The Public Submit module is not installed in activeCollab by default. To activate it, go to Administration > Modules and install it from the list of Available Modules.

Even after installation, the Public Submit Module needs to be enabled before it can be used. To do this go to the Administration section and click the Public Submit icon in the Tools section:

Once on the configuration page you can set whether Public Submit is enabled or disabled; select a project where the newly created Tickets will be posted to; and turn the CAPTCHA spam protection on or off:

Note

Public Submit can be used to create Tickets in only one, selected project. Since Tickets can have different categories within a project, anyone using the Public Submit Module will be able to choose from these categories. To define these categories use the Manage Categories tab on the Tickets page (of the defined project) or click the New Category... option on the Public Submit page of your website and create a new category from there (though you will need to be logged in to activeCollab to do so).

2. Submit Form

Once the Public Submit Module is set-up, you can refer users to a publicly available webpage where they can submit a Ticket by entering their name, email address and name of the issue.

The user may also add optional extra information to the ticket by choosing a ticket category and priority; as well as being able to add a longer description or include an attachment.

Here's an example:

Automatic Data Backup

activeCollab is shipped with a Backup module, designed to make daily backups of your data automatically. As well as backing up all data from your database, it will also backup all files that have been uploaded to the /work/backup folder.

Once a backup is created, the module will also create a file that explains how you can restore the backup easily.

Dependencies

The Backup Module uses a daily task to create backups. In order for it to work correctly then, Scheduled Tasks need to be properly configured.

1. Installation and Configuration

The Backup Module is not installed in activeCollab by default, but can be installed from the Administration > Modules page where it can be found on the Available Modules list.

After installation, backups will still need to be enabled. To do so, go to the Backup Settings page by clicking on the Backup link in Tools section of the Administration area:

You can also configure the number of daily backups which should be kept. We recommend keeping at least the last five backups:

Version Control Integration - Source Module

activeCollab supports version control integration through the Source Module. Currently the Source Module only supports integration with the Subversion version control system.

1. Installing the Module

The Source module is not installed by default. To install it, go to the Administration > Modules page and select Source module from list of Available Modules:

2. Configuration

The Source Module uses a command line Subversion client to interact with repositories. Once the Source Module is installed, you'll need to configure the path to the Subversion command line client. To do that, go to the Administration page and click the Source Settings icon in the Tools section:

You must then provide a path to the folder where your svn client binary is located:

The settings page has a simple tool that lets you check whether the path you have inserted is valid and if activeCollab can interact with the command line tool. When a valid path to the Subversion command line client is provided, you'll be able to add SVN repositories to all of your projects.

Important Note

More details on this issue are available in How to configure Source Module Tutorial.

WebDAV (BETA)

The WebDAV module in activeCollab will give you access to activeCollab projects, categories and files in the Files module through a WebDAV client.

Here are the instructions on how to configure it and use it with your favorite WebDAV Client.

1. Install and Configure WebDAV

WebDAV Module is in the Beta testing phase at the moment, and it is not shipped with activeCollab package.

In order to use the WebDAV module you will need to install it first. If you haven't downloaded it before, you can do so here.

Upon downloading the module, you will need to extract the files in it and copy the folders to the respective parts of the activeCollab root folder. If you are prompted to overwrite any files, please do so. After copying the files, open activeCollab and go to the Admin > Modules section and find the WebDAV Module in the list of Available Modules.

Click the install button and follow the on-screen instructions.

Once installed, you need to enable it. This can be done on the WebDAV configuration page of the Admin section.

After you have enabled the module, you can also make some additional adjustments, such as:

  • Whether activeCollab should show and manage files that begin with '.'; or
  • Inserting a list of files/folders you'd like activeCollab to ignore.

2. Connect on activeCollab over WebDAV client

In order to connect to activeCollab via WebDAV you will need to use a WebDAV client (program). Two of the most common clients are OSX Finder and Windows Explorer. In addition any FTP program can also be used as a WebDAV client.

The connection settings you will need are:

  • URL: http://www.your_activecollab.com/public/webdav.php
  • Username: your activeCollab email
  • Password: your activeCollab password

Connect with OSX Finder

Insert the URL and click connect. When prompted, insert your activeCollab email and password.

Connecting with Windows Explorer

Important Note

Important note: Windows Server 2008, Windows 7 and Windows Vista will all fail to connect to the WebDAV server when using basic authentication. Since the WebDAV module uses basic authentication as standard, in order to use it on these operating systems you will need to apply the following workaround.

Here's how you can connect to WebDAV by using:

  • For Windows 7 and Windows Vista - right-click on the Computer icon In Windows Explorer and select the Add Network Location menu;
  • For Windows XP and Windows Server 2003 - Open My Network Places in Windows Explorer. Click Add a Network Place.

When prompted, insert your email and password credentials.

3. Troubleshooting

Using WebDAV module on PHP CGI Server API

If your PHP server runs on CGI Server API you will need to insert this code into .htaccess file in /public/ folder (if there is no such file, you will need to create it):

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

To check if your PHP server runs on CGI, please run this PHP code:

<?php
phpinfo();
?>

Search for Server API column:

If you see “Apache” right next to “Server API” that means your PHP is running as an Apache Module, if you see “CGI” right next to “Server API” that means your PHP is running as a CGI module.

Upgrade Instructions

In this section you can learn how to upgrade your copy of activeCollab to the latest release.

Upgrading activeCollab SmallBiz to Corporate

Upgrading from activeCollab Small Biz to activeCollab Corporate can be done at any time. Once you're ready to upgrade, just carry out the following steps:

1. Upgrade to the latest version of activeCollab

If you are not already running the latest version of activeCollab, please upgrade your setup by following these instructions. In case you are having difficulties finding the version you are running, check this article.

2. Update License File

Download the License file from your activeCollab.com profile (the Download License button is next to the Download activeCollab button) and upload it to your /config folder. There should already be one license.php document. Just overwrite it with the new license file.

3. Get activeCollab Corporate and upload new modules

Visit your profile page on activeCollab.com and download the installation package:

Unpack the installation package and upload new modules to your activeCollab installation. Modules that need to be uploaded are these:

  • Calendar (located in /activecollab/application/modules/calendar and /public/assets/modules/calendar)
  • Documents (located in /activecollab/application/modules/documents and /public/assets/modules/documents)
  • Invoicing (located in /activecollab/application/modules/invoicing and /public/assets/modules/invoicing)
  • Pages (located in /activecollab/application/modules/pages and /public/assets/modules/pages)
  • Public Submit (located in /activecollab/application/modules/public_submit and /public/assets/modules/public_submit)
  • Source (located in /activecollab/application/modules/source and /public/assets/modules/source)
  • Status (located in /activecollab/application/modules/status and /public/assets/modules/status)
  • Tickets (located in /activecollab/application/modules/tickets and /public/assets/modules/tickets)
  • Time Tracking (located in /activecollab/application/modules/timetracking and /public/assets/modules/timetracking)
  • Project Exporter (located in /activecollab/application/modules/project_exporter and /public/assets/modules/project_exporter)

After you upload the new modules, they will be available for installation on the Administration > Modules page.

4. Clear /cache folder

Remove all files with names beginning with cch_ from /cache folder.

In case of any problems, please contact activeCollab support by emailing support@a51dev.com.

Thank you for upgrading!

Tip: Upgrade with Minimal Downtime

Please use the following instructions when upgrading activeCollab to the latest release, to keep system downtime to a minimum:

  1. Create a /_activecollab folder and upload all the fresh files from the /activecollab folder of the installation package that was downloaded from activeCollab.com. hen do the same for /public/assets (create /public/_assets and then upload the content from the installation package;
  2. When done, simply rename the folders, so the new one is used instead of the old ones;
  3. Then upload the other files listed in upgrade instructions;
  4. Finally, go through the rest of the upgrade instructions (i.e. run the upgrade script, clean the cache etc.). Please be sure to check the upgrade instructions for the specific release you are upgrading to for all the details.

/activecollab and /public/assets are the largest folders and can take a while to upload. That is why we recommended uploading them separately, and later renaming them, instead of overwriting the existing files.

When you've finished the upgrade process, be sure to check everything is working as expected. Once you've verified that everything is up and running, you can delete the old versions of the/activecollab and /public/assets folders, , or keep them for backup, just in case.

Note

This approach was proven to work the best. We also use it when we upgrade activeCollab installations for our customers (as part of our Professional Installation and Upgrade service).

Upgrading to activeCollab 2.3.8

1. Download the latest activeCollab 2.3 release

The latest release or activeCollab can be found on your activeCollab.com profile page. To access this, simply click the My Profile link on the main website administration page after logging in.

The installation package with all the latest files is available by clicking the "Download activeCollab" button below your license details:

2. Upload New Files

Upload all new files that exist in the installation archive, but not in your activeCollab. If any files or folders from the list below already exist on your server, you should replace them:

  • /activecollab (entire folder)
  • /config/defaults.php
  • /public/assets (entire folder)
  • /public/upgrade (entire folder)
  • /public/api.php
  • /public/captcha.php
  • /public/index.php
  • /public/restore.php
  • /public/thumb.php
  • /tasks (entire folder)
  • api.php

Please check out this short article to learn how to upload files without making system unusable.

For versions prior to activeCollab 2

If you are upgrading from a version older than activeCollab 2, you should:

  1. Upload the content of /custom folder as well (there are two empty folders in it but these should still be uploaded).
  2. If you were using a localized version of activeCollab, you should move existing translations from /activecollab/localization to /custom/localization folder.

3. Clear Cache

To clear the cache, please delete all cch_ files from /cache and all %% files from /compile folder.

4. Run the Upgrade Script

Go to the /public/upgrade link in your setup (for example, if you have installed activeCollab on www.example.com/projects upgrade script will be located in www.example.com/projects/public/upgrade) and follow the on=screen instructions. In this step, activeCollab upgrade utility will upgrade your database to the latest version.

Please remember this step!

Upgrading to activeCollab 2.1.4

1. Download the latest activeCollab 2.1 release

The latest activeCollab release can be downloaded from your profile page on www.activeCollab.com. To access this page, just click the My Profile link from the main website administration area when you are logged in.

To get the installation package, with all the latest files, just click the Download activeCollab button, below your license information:

2. Upload New Files

Upload all new files. If any files or folders from the list below already exist, just replace them with the new ones:

  • /activecollab (entire folder)
  • /config/defaults.php
  • /public/assets (entire folder)
  • /public/upgrade (entire folder)
  • /public/api.php
  • /public/captcha.php
  • /public/index.php
  • /public/restore.php
  • /public/thumb.php
  • /tasks (entire folder)
  • api.php

Please check out this short article to learn how to upload files without making the system unusable.

For Versions Older than activeCollab 2

If you are upgrading from a version prior to activeCollab 2, you should:

  1. Upload the contents of the /custom folder as well (here are two empty folders in it which should also be uploaded).
  2. If you used localized version of activeCollab, you should move existing translations from /activecollab/localization to /custom/localization folder.

3. Clear Cache

To clear the cache, please delete all cch_ files from the /cache folder and all %% files from /compile folder.

4. Run the Upgrade Script

Go to the /public/upgrade link in your setup (for example, if you have installed activeCollab on www.example.com/projects the upgrade script will be located at www.example.com/projects/public/upgrade) and follow the on-screen instructions. During this step, the activeCollab upgrade utility will upgrade your database to the latest version.

Please remember this step!

Upgrading to activeCollab 1.1.5

1. Download the latest activeCollab release

The latest release is available to download from your activeCollab.com profile page:

2. Upload new files

Files and folders that need to be uploaded are:

  • /activecollab (entire folder)
  • /config/defaults.php
  • /public/assets (entire folder)
  • /public/upgrade (entire folder)
  • /public/captcha.php
  • /public/index.php
  • /public/restore.php
  • /public/thumb.php

Please check out this short article to learn how to upload files without making the system unusable.

3. Create new folders

If one of these folders is missing, please created them and make sure that they are writable:

  • /thumbnails
  • /work

4. Clear Cache

To clear the cache, please delete all cch_ files from the /cache and remove all %% files from the /compile folder.

5. Update Clean URL-s Tweak

If you are using the .htaccess tweak to have clean URLs please update your .htaccess and config files to include rules from this page (thumb.php rule is added).

6. Run the Upgrade Script

Go to the /upgrade link in your setup (for example, if you have installed activeCollab on www.example.com/projects the upgrade script will be located at www.example.com/projects/public/upgrade) and follow the on-screen instructions. In this step, the activeCollab upgrade utility will upgrade your database to the latest version.

Please remember this step!

Note

If you are getting a "System configuration option 'format_datetime' does not exist" error, than your upgrade script is most probably located in /public/upgrade instead of just /upgrade!

Upgrading from activeCollab v0.7.1

activeCollab 0.7.1 and activeCollab v2.x are entirely different systems and so a direct upgrade is not possible. Due to the incompatibility of the Importer module with activeCollab v2.x, the data from activeCollab v0.7.1 first needs to be imported into v1.0.6. After you have import your data into this version of activeCollab, you can then upgrade to the latest release.

Here's what you need to do to get from activeCollab 0.7.1 to activeCollab 2.x:

Move Files from the Database to the File System

By default, activeCollab 0.7.1 stores files in the database. In order to move them to activeCollab 1.0, they need to be available on the file system. We have provided a script that can move them for you, just follow these steps:

  1. Download the blob2fs.php conversion script;
  2. Unpack the archive and upload blob2fs.php to the /upload folder of your activeCollab 0.7.1 setup;
  3. Visit /upload/blog2fs.php using your web browser and let it run until it shows a message that all files have been moved.
Note

blob2fs.php tool moves 1 file per second. When a file is moved, the page will refresh and start moving the next file. This way the large files can be moved without causing memory problems.

Download and Install activeCollab v1.0.6

You can download activeCollab v1.0.6 from your www.activeCollab.com profile page, it will be available in the Additional Downloads section:

Once you've downloaded it you can install it using the installation instructions in this article.

Install Importer Module

Download the Importer module and install it as follows:

  1. Unpack the module's archive;
  2. Upload the contents of application.zip to /activecollab/application/modules;
  3. Upload the contents of assets.zip to /public/assets/modules;
  4. Go to Admin -> Modules in your copy of activeCollab and click Install next to the Importer Module's name.

Import Companies and Users

Once the Importer Module is installed, you will find it under Administration > Tools. Start by importing Companies and Users. Click the Companies and Users icon, insert connection parameters for the activeCollab 0.7.1 database and click the Submit button.

Import Project Data

After you have imported Companies and Users, you can start moving your project data from the old setup. To do this click the Projects, Milestones, Tasks... link and provide connection parameters for the old activeCollab database.

Note: You will need to provide the full path to the folder where the old activeCollab files are located. To find out the exact location of the /upload folder in the activeCollab 0.7.1 setup, create a path.php file with the following content:

<?php print dirname(__FILE__); ?>

and save it to the /uploads folder. Then, open it using your web browser and the exact path will be displayed.

Important!

The import process can consume a lot of resources, so we don't recommend importing all your projects at once. Instead of importing all of them at the same time, try to import five or less projects at a time. If you receive 'max execution time' or 'memory limit' errors, try importing fewer projects per cycle.

Note

Importer does not remember which projects were imported and so it always shows the full list of available projects.

Uninstall Importer Module

After you finish importing data from the old setup, uninstall and remove the Importer Module because it will cause errors when you upgrade to v2.x.

Upgrade to activeCollab v2.x

Upgrading to the latest release is the final step and the whole process is described at this article.

Tweaking the System

The tips and advice described in this section will help you to set-up activeCollab in any way you wish.

Different URL formats

activeCollab can use three different ways to generate URL-s:

  1. http://example.com/public/index.php?path_info=projects/12 - In this case, path info goes as a GET variable. This increases compatibility with web servers that have problems with properly handling path info (some versions of IIS, for example). This method is default since activeCollab 2.
  2. http://example.com/public/index.php/projects/12 - This method uses the server's ability to extract path info from the URL and makes it available to the script. Unfortunately, some servers do not properly handle this situation which causes some compatibility issues. This method was default for 1.0, but was replaced with method #1 in activeCollab 2 and later.
  3. http://example.com/projects/12 - activeCollab uses the server's URL rewriting engine (mod_rewrite for Apache, for example) to provide 100% clean URLs. This method is not used by default, but you can follow these instructions to enable it for your setup.

Removing /public/index.php from URL-s

By default, activeCollab uses URLs containing /public/index.php in order to avoid having mod_rewrite as a system requirement. If, from some reason, this system does not work (you get a "No input file specified error", for example) or you just want to have a 100% clean URL, then please follow the instructions bellow:

  • Create a file named .htaccess at the folder where activeCollab is installed, and add these lines:
Options -Indexes
<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^(.+) - [PT,L]

  RewriteRule ^projects_icons/(.*)$ public/projects_icons/$1 [L]
  RewriteRule ^avatars/(.*)$ public/avatars/$1 [L]
  RewriteRule ^logos/(.*)$ public/logos/$1 [L]
  RewriteRule ^thumb.php$ public/thumb.php [L]
  RewriteRule ^captcha.php$ public/captcha.php [L]
  RewriteRule ^$ public/index.php [L]
  RewriteRule ^(.*) public/index.php?path_info=$1 [L]
</IfModule>
  • Open config/config.php and update the value of ROOT_URL to exclude /public from the end. If it was:
define('ROOT_URL', 'http://projects.example.com/public');

make it:

define('ROOT_URL', 'http://projects.example.com');
  • After you have created this declaration (not before, it will not work), add the following three lines:
define('URL_BASE', ROOT_URL . '/');
define('ASSETS_URL', ROOT_URL . '/public/assets');
  • Find following line:
define('PATH_INFO_THROUGH_QUERY_STRING', true);

and remove or comment it. To comment a line in the PHP configuration file, just add // in front of it:

// define('PATH_INFO_THROUGH_QUERY_STRING', true);
Importing Rewrite Rules in IIS7

IIS7 rewrite module features a tool that lets you easily import Apache mod_rewrite rules. Please check this article for details:

http://learn.iis.net/page.aspx/470/importing-apache-modrewrite-rules/

Rewrite Rules for nginx

Adam Michel sent us set of rules for nginx web server that you might find useful:

if (!-e $request_filename) {
    rewrite ^projects_icons/(.*)$ /public/projects_icons/$1 last;
    rewrite ^avatars/(.*)$ /public/avatars/$1 last;
    rewrite ^logos/(.*)$ /public/logos/$1 last;
    rewrite ^thumb.php$ /public/thumb.php last;
    rewrite ^captcha.php$ /public/captcha.php last;
    rewrite ^$ /public/index.php last;
    rewrite ^(.*) /public/index.php?path_info=$1 last;
}
Compatibility Warning

This works with activeCollab 2.1 or newer, so please make sure that you have the latest version running on your server.

/public Folder as Document Root

activeCollab is designed to be simply dropped in a subfolder and installed. On the other hand, you can have a more advanced setup where only the content of the /public folder is publicly available while everything else is behind the document root and inaccessible (ie. inaccessible).

To show you how this other type of setup works, we'll define a virtual host that maps http://intranet to the public folder of our activeCollab setup:

<VirtualHost *>
  ServerName intranet
  DocumentRoot /Library/WebServer/Documents/intranet/public
</VirtualHost>

The content of the /intranet folder should look like this:

In order to install activeCollab, we'll run http://intranet/installer. Note that the installer will not let us use http://installer as an absolute URL. Instead, we'll use http://intranet.site and change that value when the installation was successful in config/config.php.

When the installer shows us that activeCollab is successfully installed, we should delete the /installer folder from the /public folder and then check our setup. Everything should be working fine, even if only the /public folder is publicly available.

When you're applying this method, please note that:

  1. Sometimes the document root folders are not named public (frequently it is public_html, web etc). In that case, place the content of /public folder in your document root, run the installer and when you're done open config/config.php and make sure that PUBLIC_FOLDER_NAME is set to the correct value.
  2. If you are using .htaccess fix to have 100% clean URLs, then you'll need to put it in the /public folder and make appropriate changes to the re-write rules.
  3. Folders like /cache, /upload, /logs, and so on, are protected by .htaccess file with rules that restrict direct access to files located in these folders. Your server will need to be configured so it allows overriding using .htaccess files. Read more in Apache documentation.

How to Increase Maximum Upload Size?

activeCollab does not set any limit on the size of files that you can upload, but limitations are enforced by your web server. The "Max total size of files you can upload..." message in your edition of activeCollab (below the File and Attachment upload forms) displays the current limit enforced by the web server you're using:

To increase the max upload size, open php.ini file and change values of upload_max_filesize and post_max_size directives to value that suits your needs. For example:

upload_max_filesize = 64M
post_max_size = 64M

Save php.ini and restart your web server. If you don't have access to php.ini, contact your system administrator or hosting provider to increase these values for you and point out that they need to be applied to the /public folder.

Apache Note

Apache has a LimitRequestBody configuration directive. It restricts the size of all POST data regardless of the web scripting language in use. You might need to update this value, too.

Improving Search Index

By default, activeCollab uses the MySQL FULLTEXT index for search, which works well, but in some cases MySQL can be configured not to index words shorter than 4 characters. To correct this and configure MySQL to index three-letter words (it's not recommended to go shorter than three characters), you will need to set the value of ft_min_word_len directive in your my.cnf file:

[mysqld]
ft_min_word_len=3

After you're finished, restart your MySQL server and rebuild the FULLTEXT index by dropping and creating the index on the content field in the search_index table:

ALTER  TABLE  `acx_search_index`  DROP  INDEX  `content`);
ALTER  TABLE  `acx_search_index`  ADD  FULLTEXT ( `content`);

If you wish to find our more information about the fine-tuning MySQL FULLTEXT search, you can found it at this section of the MySQL documentation.

Moving activeCollab to Another Server

You are free to move your installation of activeCollab from it's original server to a new one at anytime.

To do so, just follow this step-by-step guide to make the moving process as fast and as easy as possible:

1. Requesting a New URL

First, you will need to ask for URL change approval from your activeCollab.com profile page. To do that you need to:

  1. Login to www.activeCollab.com by using your username (email address) and password;
  2. Click the My Profile link in the top right corner of the website;
  3. In the license details box, click the Change link next to license URL on your profile page

The approval of your new URL will be made automatically. In case you wish to change your URL more than once in 24h, the system will notify our team, and they will approve it manually as soon as possible. In any case, you will get the notification that your request has been processed.

2. Installing activeCollab on a New Server

Once a URL change is approved, you should install a new copy of activeCollab on your new server. The best way to do this is to install a completely fresh version of activeCollab using a new license downloaded from your www.activeCollab.com profile page.

Note

Make sure that you use the same table prefix that you used for your original setup (usually it is "acx_").

3. Moving Data from the Old Server

When your installation URL change is approved and you have a fresh copy of activeCollab running on your new server, you are ready to move the data from your old setup.

First, drop all activeCollab tables that the installer has created on your new database. Now export the tables and data from the old setup, and then import it into a new database. You can do this by using your favorite MySQL administration tool (phpMyAdmin, command line MySQL client, Navicat, etc).

This short video (QuickTime Movie, 2MB) shows how you can do this in a three simple steps using phpMyAdmin: select a database, on the export tab make sure that all activeCollab tables are selected, and save them as a file.

When you have migrated database tables from old setup to the new one, move content of the following folders to the new server:

  • /public/avatars
  • /public/logos
  • /public/projects_icons
  • /upload

activeCollab stores your binary data in those folders - images, uploads, etc, so don't forget to move them, too.

Transfer Mode

When uploading images, avatars etc from your old setup, make sure that you use Binary transfer mode in your FTP client. Using ASCII mode may result in corrupt files afterwards.

Now that the files are moved, please check the permissions and make sure that all existing files are writable by PHP. If these files are read only, you'll not be able to update them.

That should be it. If you have any questions or you have experienced any problems with moving your activeCollab, please do not hesitate to contact our support at support@a51dev.com.

Troubleshooting

If you have any problems with your everyday work on activeCollab, you may find a solution using one of these articles. We have described some of the most common issues and their solutions here to save you time if you experience any difficulties. For everything else, feel free to contact our support team on support@activecollab.com and we will help you as soon as possible..

Debugging

activeCollab can run in three different modes, based on the value of the DEBUG directive. Possible values are:

  1. 0 - debugging is off. In case of a system error, activeCollab will just print an error message and stop working.
  2. 1 - default mode used for the system in the production environment. In case of a system error, activeCollab displays a brief error message to the user without reveling any sensitive system information and sends an email notification to the administrator, with all relevant information included. The recipient for this kind of notification is configured within the ADMIN_EMAIL directive.
  3. 2 - debug mode used for troubleshooting and development. In this mode activeCollab logs entire execution process in the /logs folder. Logged information is grouped by day. In case of a system error, detailed error with all relevant system information is displayed to the user, but no email will be sent.

When troubleshooting, you should raise the debug level to 2. Open the config/config.php and change the value of the DEBUG directive to 2. If the DEBUG directive is not present in config/config.php, then you can add it yourself by adding the following line to the file:

define('DEBUG', 2);

It is strongly recommended that you use debug mode only for debugging. When you are done debuggin, revert the value back to 1 to avoid revealing any sensitive information to the users within your activeCollab.

Testing if Emails are Sent Properly

Mailing is one of the most important features of activeCollab. In this article you'll find instructions on how to check if mailing is working properly and how emails sent by the system look like.

1. Configuring Email and Sending Test Messages

Firstly you should check if activeCollab can connect to the server and send out an email.

There are two ways for activeCollab to send an email:

  1. By Using a Native Mailer. In this case, activeCollab will use the mailing server configured in your php.ini file. If PHP is properly configured, activeCollab will connect to it automatically without any additional parameters.
  2. By Using a SMTP server. activeCollab connects to the SMTP server by using its built in system and sending out messages.

After a successful installation, Native Mailer is selected by default, so mailing should work properly if it is configured in php.ini. On the other hand, if it is not configured, you'll need to provide SMTP connection parameters. To check if the SMTP parameters you have provided are good and the system can connect to the server, use the Test Connection button on the Mailing page.

Once you have configured email settings on the Administration > Mailing page, the next thing you should do is to send out test emails. There is a tool available in Administration called Test Mailing Settings. Using this tool, you can write a message and send it to a specified email address.

If everything works properly, you have successfully set-up mailing.

2. Testing Email Notifications

When email is properly configured and messages are successfully sent using the Test Mailing Settings tool, you may wish to see how notifications sent by activeCollab look like. To do this, you'll need two separate user accounts. This is because activeCollab never sends notifications to the same person who executes the action.

If, for example, you post a comment to a ticket you'll not receive a notification about it even though you are subscribed. As it was you that posted the comment, there's no need for activeCollab to notify you. On the other hand, all other subscribers will receive email notifications about the new comment.

To test email notifications, create a new ticket and select another account for you to use as a test assignee. Once the ticket is created, an email with the details about the ticket should be sent to the other user account you used for testing.

If activeCollab behaves differently to anything described above, please contact us at support@activecollab.com. and we'll help you find a solution as soon as posible.

File and Folder Permissions

The most common cause of problems within activeCollab is file and folder permissions. Improperly set permissions can result in various issues:

  • Blank pages when you try to use the system;
  • Users unable upload and attach files;
  • User avatars, company logos or project icons do not work as expected;
  • Project exporter is not able to export content;
  • Backup module is not able to create backups, etc.

To resolve these issues, please make sure that PHP can write to all the folders listed below. These folders need to be writable for activeCollab to work properly:

  • /cache
  • /compile
  • /logs
  • /public/avatars
  • /public/logos
  • /public/projects_icons
  • /thumbnails
  • /upload
  • /work

Solving Memory Problems

PHP limits the amount of memory available for execution of a script. This is controled by memory_limit configuration option.

By default, memory_limit is set to 8MB. If the script tries to allocate more memory, PHP will display a fatal error that looks something like this:

Fatal error: Allowed memory size of N bytes exhausted (tried to allocate M bytes) in FILE on line #.

To get around this error, you will need to increase the PHP memory limit and make more room for executing the application.

To do that open php.ini file, find a line where memory_limit option is defined and change it to a higher value. Although 8MB is enough for most activeCollab requests, in some cases activeCollab will need more memory, especially when working with images. Because of that, we recommend memory limit to be set to 64MB.

The line where memory limit is defined will look like this:

memory_limit = 64M

Once you have made the change, save the php.ini file and restart your web server.

Note

On some servers you will not be able to change php.ini file by yourself. In that case, please contact your system administrator or hosting provider in order to make this change for you.

1. Problems with Memory and Image Thumbnail Creation

Thumbnail creation for images was introduced in activeCollab 1.1. It is enabled by default. It automatically resizes images (JPG, GIF and PNG) smaller than 1MB and enables users to see a preview without downloading the original file. This caused problems on some setups where the recommended 64MB memory limit was not high enough for the resize operation to be performed.

The fix for this issue was introduced in activeCollab 1.1.1. From this release you can set the max size of images that will be resized (default is 500kb) or completely turn off thumbnail creation.

Now, in config/config.php you can define two new configuration options:

  1. CREATE_THUMBNAILS - True or False, enables or disables thumbnail creation. True by default.
  2. RESIZE_SMALLER_THAN - If CREATE_THUMBNAILS is set to true this option defines the maximum size in bytes of images that can be resized. Default is 524288 (500kb). Larger images will be ignored. Here is how it should look like in your config/config.php if you wanted to have thumbnails enabled for all images smaller than 1MB: Here is how it would look like in your config/config.php if you wanted to have thumbnails enabled for all images smaller than 1MB:
define('CREATE_THUMBNAILS', true);
define('RESIZE_SMALLER_THAN', 1048576);

Resolving Login Problems

Login problems are usually caused by one of the following reasons:

  1. Invalid User Credentials
  2. Problems with Setting Cookies
  3. PHP Misconfiguration

Please read the following for more details on each of the possible reasons.

1. Invalid User Credentials

If activeCollab is persistently stating that your login data are not valid, then they most probably are not. Use the Forgot Password utility to have your password emailed back to you.

If the email address provided in the Forgot Password form does not exist in the system though a notification is displayed by the system explaining that you have input the wrong email address.

2. Cookie Problems

Since version 2.1.4, activeCollab uses only cookies to track user's session data. In some instances, especially in situations when activeCollab is hosted on your own computer (on localhost or other virtual host), this can cause some difficulties.

The problem is that the system accepts your user credentials, but returns you back to login page without displaying any error message. To work around this, open config/config.php and add the following line in the section where all the other configuration options are defined:

define('COOKIE_DOMAIN', '');

Then save and close config/config.php file and try to login again. If that does not help, please contact support by sending an email to support@a51dev.com.

3. PHP Misconfiguration

If activeCollab does not log you in, but instead keeps redirecting you back to the login page (without displaying any errors), then it also could be a problem with your PHP session handling. These issues are easiest to resolve by switching to debug mode and looking for PHP errors in the logs or on the screen.

If you can't solve the issues highlighted in the error messages, feel free to contact our support team at support@a51dev.com. and send us the error reports, and we'll help you as soon as possible.

4. Remember me for 14 Days does not Work as Expected

Usually, two situations may lead to a problem with Remember me functionality:

  1. Your browser does not accept cookies. Please, have cookies enabled in your web browser configuration. Here you can find instructions about how to enable cookies in most of the web browsers.
  2. You visited activeCollab from another computer or using another browser and logged in. When this happens, activeCollab will log you out from any computer you have used previously. This is a security measure designed to solve session hijacking problems.

Fixing "Owner company is not defined" Problem

activeCollab uses file system on your server to store uploaded files, as well as to cache data. Usual indicator of your disk being full (or upload quota of your hosting package reached) is this error:

Owner company is not defined

System throws this error when it cannot load or write cache file when it tries to catch owner company information. This does not mean that data in the database is not present, or that it is corrupt, just that activeCollab is not able to work with cache because there's not enough free space.

Solution for this problem is to free up some space on your server.

Getting More Free Space

Apart from removing files that are not activeCollab related, but take up space, you can also remove:

  1. Old backups, in case you are using Backup module. Backups are stored in /work/backup folder of your activeCollab setup.
  2. Old projects, by exporting them to static files and deleting them from your activeCollab, as explained in this tutorial.

In case you confirmed that you have enough free space on your server or hosting package, but still receive the same error, please submit a support request, and our support team will take a look.

Resolving "Failed to connect to database" Crashes

activeCollab is dependent on database which stores your project data. If it fails to connect to the database, it will send a crash report to the Administrator or display an error message when it is in Debug mode.

Although it happens rarely, your first option that should be check is if your database connection parameters or database name has been changed since you set-up the system. To resolve this, open config/config.php and update the connection parameters:

define('DB_HOST', ''); // MySQL server hostname, usually localhost
define('DB_USER', ''); // User that you're using to connect to database
define('DB_PASS', ''); // User's password
define('DB_NAME', ''); // Name of the database where activeCollab is installed

But ut is more likely that your database is just temporally unavailable, , and this issue will be solved eventually by your hosting provider.

The database may be unreachable for many reasons: MySQL server is down or restarting; maximum number of open database connections is reached and activeCollab's request to connect was rejected; etc. All of these situations are outside of application's control and can't be fixed by activeCollab, and that's why it simply stops running and sends or displays a crash report.

If you are receiving these crash reports frequently, we recommend that you contact your hosting provider and ask for assistance.

Fixing Crashed or Corrupt MySQL Tables

MySQL is like any other software running in a complex environment. It is known for its stability, but sometimes database tables may crash or get corrupted because of a number of reasons.

When something like this happens, you will get crash reports with information that a query failed because of a missing file or because of invalid information in one of the files. Exact error messages may vary and the following is just one example:

Query failed with message 'Incorrect information in file: './db_name/ac_user_sessions.frm''

The first step that you should take if you start receiving such crash reports is to try to repair the table. Here's how you can do that with phpMyAdmin:

  1. Log into your phpMyAdmin and navigate to the database where you have activeCollab installed;
  2. Select the table that crashed by clicking on the checkbox in front of its name, and than select Repair table option from the drop-down at the bottom of the tables list:

If the Repair command fails to resolve the problem, you should contact your hosting provider or system administrator for assistance.

MySQL 5 Strict Mode Issues

activeCollab works on MySQL5, but you may experience problems on some rare situations if you have it running in strict SQL mode. It is advised to use a less strict SQL mode (MYSQL40 mode is recommended).

There are two ways to change the value of SQL mode preference:

  1. The first is to execute the following SQL command:
SET @@global.sql_mode='MYSQL40'
  1. The second approach is to open your main MySQL configuration file (usually my.cnf) and change the value of the sql-mode directive:
sql-mode="MYSQL40"

You should then save the my.cnf file and restart the MySQL server.

To verify that the SQL mode has been updated, execute the following command:

SELECT @@global.sql_mode; 

MySQL should then return something like this:

NO_FIELD_OPTIONS,MYSQL40,HIGH_NOT_PRECEDENCE

Release Notes

activeCollab 2.3.8

Licensing:

  1. License agreement updated

Enhancements:

  1. Shipping latest stable TinyMCE release (v3.4.8), which now enables rich-text editor to devices using iOS5
  2. PHP 5.4 compatibility

Bug Fixes:

  1. Fixed problem with BenchmarkTimer class in CronController when system is not in DEBUG mode
  2. Company invoices are listed on pages
  3. Only administrators can change role of another administrator
  4. Fixed error reports by Backup module
  5. Fixed issue with rich-text editor when activeCollab is used via mobile interface
  6. Upgrade script does not enforce persistent connection
  7. Fixed JS "return false;" issue with IE 7 & 8
  8. Output redirection bug fixed in Source admin section
  9. Missing 3rd parameter in Category::canAdd
  10. Fixed setting a project as favorite using drag & drop

activeCollab 2.3.7

Enhancements:

  1. Users from archived companies are now excluded from the dialog for adding users to a project

Bug Fixes:

  1. Escaped repository password
  2. Nested lists in visual editor are properly saved
  3. jQuery UI upgrade and IE drag and drop compatibility
  4. Fixed deleting project's icon
  5. Fixed few issues with print preview
  6. Fixed default date and time format issue for Windows
  7. If there is only one admin role, it's system or admin access cannot be turned off
  8. Fixed the bug in the assignment filters, when pointing "completed on" to a specific date and setting status "both active and open" actually showed completed objects only

activeCollab 2.3.6

Enhancements:

  1. Improved thumb.php
  2. People with manage permissions in specific section (discussions, files, pages, tickets) can also manage categories in that section
  3. Removed extra database lock while emptying the trash
  4. If there are too many trashed objects, they will be deleted in chunks (not all at once)
  5. Status updates now can be deleted
  6. Basecamp data importer included in Corporate and Small Biz builds

Bug Fixes:

  1. Fixed subscriptions page problem when project is empty
  2. Fixed permission checking for tasks assigned to a user who can't edit parent ticket, checklist or a page
  3. Fixed favicon URL for login screen, as well as error page
  4. Fixed issue when assignments filter was including comments in the results in some cases
  5. Fixed issue when trash was reporting to be empty and it wasn't
  6. Fixed bug where admins and project managers were being able to perform search only across projects that they were added to
  7. Fixed PHP compatibility message for Incoming Mail and Importer modules
  8. Master categories at Admin page are now sorted in the same way as they are sorted within projects

activeCollab 2.3.5

Bug Fixes:

  1. Fixed PHP4 compatibility error in Subscriptions class
  2. Fixed Google Chrome issue with print preview stylesheets

activeCollab 2.3.4

Enhancements:

  1. Favicon updated
  2. Directories having invalid name are excluded from modules list
  3. Objects can also be completed by using "completes" keyword in commit messages
  4. Text excerpt adds white-space between paragraphs instead of "glueing" them together
  5. Email notifications about new comments now include links attachments (if any), and don't include parent object information block any more
  6. Admins and project managers can see all projects at projects list while adding/editing an invoice
  7. Invoice number generator counters can now be manually set in admin panel
  8. Added character counter for status update message and blocking input when the limit exceeded
  9. Ticket IDs are preserved upon creating a project from a template
  10. Tickets and tasks now use VEVENT instead of VTODO when exported in ICS file type
  11. Improved recongition of Droid and Palm devices
  12. Improved Assignments by adding more optios to filters
  13. Added "Reset password" to mobile interface
  14. Comments are now displayed as newest first; comment form moved above the comments
  15. Added more recent activities on Dashboard and Project Overview
  16. Added "Subscriptions" link to user options and "My Subscriptions" to project overview for easy subscription management
  17. Edit option for comments is locked one hour after the comment is posted
  18. No more "free for taking" tasks

Bug Fixes:

  1. Fixed bug when eval() function throws an error while exporting projects
  2. Fixed bug with invoices where there was typo in one of the parameters in Invoices class (condition instead of conditions)
  3. Fixed deadlock MySql issue - try 3 times before throwing an error
  4. Fixed warning message at parsing commit messages
  5. Fixed regex which was failing to validate URLs containing query string (e.g. custom logout URL)
  6. Fixed editing "Issued on" value for invoices
  7. Fixed downloading files issue - ob_end_clean()
  8. Fixed subscribing project leader to tickets added via Quick Add
  9. Fixed pagination at company invoices page
  10. Checking for more error strings in Svn response
  11. Fixed selecting target project at resolving mail conflict
  12. Fixed viewing objects moved to other project via objects' old links.
  13. Fixed disappearing of assignment filters added to the group named "Other"
  14. Fixed setting wrong user and time for previous page version
  15. Fixed SVN issue when, on some systems, SVN repository always returns one log even if there are no new ones
  16. Fixed calculating first day of the week that wasn't working as expected in some cases
  17. Fixed error at mailbox add/edit page when neither Tickets nor Discussions module are installed
  18. Fixed issue at checklists page when no tasks could be added
  19. Fixed displaying company users via API
  20. Some phrases were not available in the translation tool
  21. Fixed double status message posting
  22. Fixed default "Late" assignment filter showing completed objects
  23. Fixed issue when tasks rescheduled by a milestone were diplaying old due dates
  24. Fixed issue when user with ability to manage an object couldn't manage its subtasks
  25. Administrators and project managers can see all projects via mobile interface now (before only projects assigned to)
  26. Fixed displaying 'Object' instead of selected date and date range in some environments at assignment filter's details block
  27. Fixed showing all assignments instead of none, when selected company has no users or no visible users
  28. Fixed print preview failing to load stylesheets in Safari 5.1
  29. Fixed fatal error in setups using persistent connections but not having them enabled on system level

activeCollab 2.3.3

Bug Fixes:

  1. Fixed logo uploading in Company identity section of activeCollab administration
  2. Email notifications when adding Documents
  3. Time reports now displays time records for anonymous users
  4. Fixed Go button on archived ticket page
  5. Fixed problem with Page Version delete permissions
  6. Fixed importing language from xml issues when there's a translation for one module only / translation for module has a single translation entry
  7. Fixed filemtime() PHP warnings when logo and avatar URL-s are returned
  8. Fixed PHP warning in ProjectPeopleController class
  9. Fixed bug with invoice unit price value while another language is selected where point (.) was interpreted as comma (,) thus preventing company address to be rendered correctly
  10. Fixed bug for showing compare differences between revisions
  11. Fixed bug for time entries of deleted users when using project exporter
  12. Fixed bug to use "Use error output redirection" in Source Settings by default
  13. Improved Internet Explorer 9 compatibility

activeCollab 2.3.2

Enhancements:

  1. Only administrator can change password of another administrator
  2. TinyMCE upgraded

Bug Fixes:

  1. Fixed Source module bug (browse repository link error)
  2. Fixed Source module bug (update repository JS problem in IE)
  3. Change commits visibility on repository visibility changes
  4. Fixed MIME type issue with documents and attachments
  5. Ticket priority is properly set when ticket is created by incoming mail
  6. Fixed fatal error on status page when there are no status messages in the database
  7. Fixed issue with task complete / reopen action in mobile interface
  8. Attachments can be deleted only by people who can edit parent object
  9. Only people who can see an object can subscribe to it
  10. Fixed long URL problem with projects select widget when there's a lot of projects to be excluded
  11. Fixed problem when system failed to connect time records with invoices based on time reports
  12. Fixed problem with Styles menu in visual editor

activeCollab 2.3.1

Enhancements:

  1. Added information on when the reminder was sent
  2. Added list of available modules to the welcome message
  3. Welcome message on the Dashboard is displayed only to Administrators
  4. Replies on individual messages have been added to the Status module
  5. Copying/moving milestones to another project now allows copying/moving all related objects (tickets, checklists, files, discussions)
  6. STDERR to STDOUT redirection (2>&1) in Source module's SVN commands is now optional
  7. Added config option for limiting number of subscribers that are printed on each page that lists them
  8. Source module can be accessed trough mobile interface
  9. Added --trust-server-cert option to Source module
  10. Added message when a user who does not participate in any active projects tries to download the .ics file
  11. Added support for custom number of decimal spaces used in invoices, use INVOICE_PRECISION in config.php to determine how many decimal spaces you need. Maximum number of decimals supported by system is 3
  12. Tax rate now can have 3 decimals
  13. Users on project's People tab are ordered by name
  14. Copy/Move to Projects lists all available projects to project managers and administrators
  15. System sets Return-Path for outgoing messages
  16. Better canUnsubscribe() permission check for project objects
  17. Administrators, project managers and people managers can add people from any company to projects
  18. User has an option to avoid sending notification to company specified on an invoice when adding last invoice payment
  19. Now the following fileds can be set through the API for project objects: created_on, created_by_id, created_by_name, created_by_email

Bug Fixes:

  1. Source module is translatable
  2. Fixed problem with formatting of time data
  3. Fixed "With Selected ..." button style
  4. Improved edit time record form
  5. Fixed problem with pagination not remembering selected category in Documents module
  6. Fixed problem with relation between milestones and checklists being lost when project is created from a template
  7. Fixed bug with callback functions of modal dialogs
  8. Fixed issue with converting uppercase hyperlinks
  9. Fixed incorrect date for "last comment on" for discussions copied from other projects
  10. Fixed bug that was crashing invoicing module when there is invoice which is issued to the company which is deleted
  11. Fixed bug with invoicing module in which two or more invoices can share same timerecords attached to them. From now on, when you assign timerecord to one invoice, it can't be assigned to invoices created afterwards
  12. Fixed diff/compare/history issue that affected some files in Source module
  13. Fixed bug with number rounding in invoicing module
  14. Fixed bug with corrupted archives while using project exporter on some installations
  15. Fixes for uploaded files permission and for cache file permission. File permission can be overridden now with simple config option
  16. Fixed incorrect hidden input value when editing documents
  17. Fixed problem with long MIME type strings
  18. Warsaw moved into a correct time zone
  19. Fixed issue when long user agent string could cause query error when MySQL is in strict SQL mode
  20. Improved PHP 5.3 compatibility
  21. All projects are listed in projects archive to administrators and project managers when viewed by client
  22. Fixed missing argument warning in on_project_overview_sidebars handler
  23. Correct page version author is displayed on Pages tab
  24. Mobile interface now displays login error messages
  25. Fixed bug, when visitor receives 'Page not found' error when visiting assignments page after deleting default assignments filter
  26. Fixed issue with logo resizing in invoicing administration
  27. Single quote (') is now allowed in email addresses
  28. Fixed issues with tr_TR locale
  29. Fixed issue with visual editor when caret gets moved to the beginning of the editor after pasting text
  30. Removed completed objects from the project calendar iCal feed
  31. Visual editor disabled for mobile browsers (most of them do not support content editable, or iframe design mode)
  32. Company name is 'cached' in invoice in case that company gets deleted
  33. Fixed issue where on some activeCollab setups if you try to download PDF version of invoice, you receive fatal error message.
  34. Pinned projects list only projects that user is member of
  35. System does not allow last system administrator to change his system role to a role which does not have administrator permissions
  36. Fixed issue with archive and RSS icons in status updates dialog
  37. Listing files in /work folder with browser is now disabled
  38. Installer sets COOKIE_DOMAIN to empty value in case of localhost
  39. Fixed problem when "Upload Now" on Files tab could not be translated

Security:

  1. Fixed potential XSS problem in SVN commit messages
  2. Fixed module, action and controller variable validation (problem reported by Jose Carlos de Arriba)

API Changes:

  1. Status messages now return the URL of the user's avatar
  2. Added 'system_edition' field to /info command
  3. Added /projects/:project_id/files/categories call
  4. Added /projects/:project_id/discussions/categories call
  5. Added /projects/:project_id/tickets/categories call
  6. Added /projects/:project_id/pages/categories call
  7. Category filtering for tickets, pages, discussions and files

activeCollab 2.3

Enhancements:

  1. Introducing Invoicing module in Corporate version
  2. Introducing Source module in Corporate version
  3. Better option names on export project page
  4. Email address that is already in use by an user account can't be used for incoming mailbox
  5. Clicking user's name in the list of commits in the Source module leads to the list of commits made by that user
  6. Manage invoices permission management added to Invoice module page

Bug Fixes:

  1. Fixed problem when thumbnails are not loaded when warnings are on in PHP 5.3.0
  2. Stipped style comment from text when text is pasted from Microsoft Office application (Word, Outlook etc)
  3. Time reports do not ignore time from deleted users any more
  4. Link to user profile from Source module now follows the way all other URLs are formed
  5. Fixed issues when project icons, client logos and user avatars smaller than 40x40px ended up with black background when resized
  6. Fixed issue with mobile interface on pages with categories and project groups on setups with PATH_INFO_THROUGH_QUERY_STRING turned on
  7. Fixed print preview crashes in Internet Explorer
  8. admin_access and project_management permissions now override can_see_private_objects permission
  9. New Company option removed from client picker on New Invoice form
  10. Fixed problem with number formatting

activeCollab 2.2.2

Enhancements:

  1. Source module has the ability to set custom 'config-dir' for Subversion

Bug Fixes:

  1. Fixed PHP4 compatibility problem in PdfSettingsAdminController class
  2. Fixed 'duplicate entry for key...' in Source module
  3. Fixed bug on page with invoices listing where instead total price with tax, price without tax is shown
  4. Fixed number rounding issue on 'Add Payment' page of Invoicing module
  5. Issued invoice now can be edited
  6. When creating invoice based on ticket and project time report, project field on invoice form is preselected

activeCollab 2.1.4

Enhancements:

  1. When an assignment is re-assigned, new assignees are automatically subscribed to it
  2. All project template categories are copied to a new project
  3. Milestone information is included in email notifications
  4. DST setting now supports "-- System Default --" value on user profiles
  5. Emails sent from people who don't have access to certain incoming mailbox, now can be manually imported while preserving original author
  6. PCRE (Perl-Compatible Regular Expressions) is required extension
  7. Added GMT -4:30 time zone
  8. XML extension has been added to optional, but recommended extensions list
  9. System will not throw a warning if PHP works in safe mode when it tries to set default timezone to GMT
  10. Added option to filter archived projects by status
  11. When email is imported it updates last activity time in profile of the user who created it
  12. Fixed PHP5.3.0 preg_quote() compatibility issue

Bug Fixes:

  1. Section labels used in select project permissions block now can be translated
  2. Fixed problem where Quick Add time record form could not processed time in 3:30 format
  3. Fixed problem where related tasks were not properly rescheduled when parent milestone was rescheduled
  4. HTML entities are not double escaped in ticket titles
  5. Fixed issue with image visibility in Documents for non-admin users
  6. Fixed bug in mobile interface when using pagination on some installations
  7. Android based mobile devices now use interface made for iPhone devices
  8. System "system_access" permission can't be removed any more from the last admin role
  9. Title of dialog window for changing avatars/logos/icons is now using distinct text, instead of "Change icon" for all three of them
  10. After switching the language in user settings, confirmation message is no longer displayed in previous language
  11. Fixed localization issue with New Task activity log entries
  12. Fixed problem with Unicode tags
  13. Download file links force download
  14. User can set due on date when creating ticket via quick add dialog
  15. Fixed who can see private document message

activeCollab 2.2.1

Enhancements:

  1. Added default logo for PDF invoices generated by invoicing module
  2. Improved the way activeCollab works with user sessions
  3. Cookie domain is configurable (if needed)

Bug Fixes:

  1. Fixed broken 'New Invoice Form' in IE6 and IE7
  2. Tax Rate names in invoicing are not unique anymore
  3. Invoice can be issued only to company managers
  4. Predefined item template is not truncated anymore
  5. Source module notification e-mails include commit details (if there are 10 or less commits in an update)
  6. Fixed bug in Source module when trying to view objects that were removed from a repository
  7. Repositories from non-active projects are excluded from updating
  8. Fixed switching revisions in Source module
  9. "SVN executable not found" replaced with message that is being returned from svn/command line
  10. Fixed PHP5.3.0 preg_quote() compatibility issue

activeCollab 2.1.3

Enhancements:

  1. Added auto-reconnect for situations when MySQL closes connection in the middle of the request
  2. Added new config options for better controlling the way mailing is working (native mailer and marking messages as bulk options)
  3. System permission 'manage_trash' has been added
  4. Administrators and project managers see all objects that are in the Trash
  5. GZIP compression for assets (js, css and print collector files) can be turned off by setting COMPRESS_ASSET_REQUESTS option to false in config.php file
  6. {title} accepts language parameters just like {lang} does

Bug Fixes:

  1. Fixed fread() problem in collector files
  2. HTML Purifier now uses /cache folder to cache definitions
  3. Styles in visual editor are translatable
  4. Time records API returns same records as web interface
  5. Fixed notice in DashboardController
  6. Many localization fixes and tweaks (thanks to Frederik Sauer)
  7. Welcome message after user login is now in user's language
  8. Fixed problem when, in some rare cases, task parent form was loaded when tasks was created with AJAX request
  9. Aligment of 'Complete ticket with this comment' checkbox fixed
  10. Empty Return-Path turned off by default
  11. Uppercase letters can be used in email addresses
  12. Fixed infinite visual editor explanding in Google Chrome
  13. Fixed issue where on some installations, incoming mail was treating first empty line in the imported email, as beginning of hidden email history

API Changes:

  1. Comments now return list of files attached to them
  2. Fixed problem with Pages category not listing pages in API response

activeCollab 2.2

Enhancements:

  1. Introducing Invoicing module in Corporate version (beta!)
  2. Introducing Source module in Corporate version (beta!)

Bug Fixes:

  1. Fixed fread() problem in collector files
  2. HTML Purifier now uses /cache folder to cache definitions
  3. Styles in visual editor are translatable
  4. Time records API returns same records as web interface
  5. Fixed issue with visual editor auto-expaner in Google Chrome

activeCollab 2.1.2

Enhancements:

  1. Archive link in Projects is now aware of selected client and group
  2. HTML Purifier upgraded to version 2.1.5 (last PHP4 compatible version)
  3. Only people with manage permissions in Time section will see mass edit checkboxes and controls
  4. Scheduled Tasks page now includes instructions for executing scheduled tasks using PHP command line interface
  5. Billable status is automatically set to Yes in quick add dialog
  6. Added links to upgrades in Administration > System Information block
  7. People now see companies that are set as clients for a project even when members of that company are not involved in a project
  8. Task notifications include link to parent object (ticket, checklist etc)
  9. Status module page with easy to access permissions added

Bug Fixes:

  1. Fixed buggy quick add dialog behavior
  2. Language importer is now more careful when importing languages from broken xml
  3. Backup module on some installations was sorting previous backups by their modification time instead of creation time
  4. Long links in Page diffs could make the diff block too wide and break the layout in Safari
  5. Fixed issue with date filter for assignment filters
  6. Fixed project icon caching issue when project client is changed
  7. Fixed problem where projects with owner company set as a client are not considered internal
  8. Fixed project exporter chrashing on some servers with PHP installed as ISAPI on IIS
  9. Fixed time record creation / upgrade problem on some installations
  10. The last administrator in the system cannot disable "admin_access" permission for his role
  11. Add links on milestone details page are aware of permissions now
  12. Fixed project exporter issue where attachments to pages and discussions were not exported
  13. Fixed time reports that in some cases did not properly calcualte total time if there was 1000 or more hours logged
  14. Email address validation now supports something+something@something.com addresses
  15. Fixed iCalendar feed generation on PHP 5.0.x versions
  16. When user tries to delete a document from Documents section he will be asked to confirm the action
  17. Bugfix for Safari 4 which was causing textarea to be stretched vertically on page scroll
  18. Fixed automatic URL conversion bug that was introduced in v2.1.1
  19. Object can't be restored if its parent is still in Trash
  20. Fixed issue with client tabs when projects are grouped by client
  21. Upgrade script did not properly update parent type for some attachments
  22. Fixed issue with deleting company logos, project icons, and user avatars in dedicated pages
  23. Fixed problem with mass edit of time records in IE8
  24. Fixed layout issues with popup dialogs in IE6

activeCollab 2.1.1

Enhancements:

  1. Increased number of comments per page to 25

Security:

  1. Fixed XSS problem when error dump is displayed
  2. Fixed possible path exposure in error dumps

Bug Fixes:

  1. Object types in quick add module now are properly translated
  2. Fixed scrolling in quick add popup
  3. Covered some phrases that were not available for translation
  4. Added option in incoming mailbox add/editing form, to accept emails from registered activeCollab users which are not added to project specified in that incoming mailbox
  5. Fixed issue with restoring backups, when some users were having "Access Forbidden" issues
  6. Fixed project description bug in mobile interface
  7. Fixed issues with incoming mail MIME encoding problem
  8. Fixed issue with quick add dialog, when it breaks apart when there is more than ~10 projects
  9. Title of new company dialog was not properly named
  10. Fixed link auto discovery when link is at the beginning of the sentence
  11. Status updates in RSS now have valid permalinks
  12. Fixed ordering of backups in administration
  13. Incoming Mail is configured not to accept auto-responder emails
  14. Task priority is visible now
  15. Fixed password issue when new user is created with API command
  16. Fixed error display when DEBUG level is not set for development
  17. Fixed pre_var_dump function to properly clean variable dumps

activeCollab 1.1.6

Enhancements:

  1. RSS feeds validate
  2. When clicking on New Ticket button while in ticket category, that category will be preselected in Category drop-down on New Ticket form.
  3. Added description bellow project template picker which explains who will be automatically added to the new project. When project is created from a template, users will be imported from a template. If no template is selected, users will be added based on auto-assignment settings.
  4. Anyone assignment filter returns task by ignoring assignment data. Now it really returns tasks assigned to anyone.
  5. Not assigned assignment filter return tasks that do not have people assigned to them.
  6. Status filter lets you define if you wish to have all, only active or only completed tasks listed.
  7. Next page link at the bottom of Assignments page added.

Security:

  1. Fixed XSS problem when error dump is displayed.
  2. Fixed possible path exposure in error dumps.

Bug Fixes:

  1. Fixed pubdate bug in RSS generation. This cause problems with some RSS readers because correct name of element is pubDate.
  2. Fixed problem with calendar popup in date picker being cut off in some cases on 1024x768 resolutions or smaller.
  3. Fixed Internet Explorer print style switcher issue which caused problems when print stylesheet was loaded for the second time.
  4. Removed Image Browser tab in Insert image tool. This feature was never implemented and the tab caused a lot of confusion.
  5. Fixed error when edit time record form was submitted with validation error.
  6. Fixed bug with avatar / logo / project icon upload on some systems which return false when we use is_file() for uploaded files.
  7. Fixed problem with Select Users dialog when there was a lot of users on Internet Explorer 6.

API Changes:

  1. Fixed issue where discussion request did not return discussion comments.

activeCollab 2.1

New Module - Incoming mail

  1. activeCollab can check and import email. New messages are imported as tickets or discussions, while replies to notifications are posted as comments. Email attachments are imported as well
  2. Define any number of POP3 / IMAP servers to receive emails
  3. Detailed activity log to spot and resolve errors and conflicts

Read more about Incoming Module module in this blog entry.

New Module - Documents

  1. Global documents section is perfect for common company documents, operation manuals etc
  2. Post text or upload files
  3. Just like tickets, discussions or files, documents can be marked as private and visible just to a specific group of people, while invisible to other users

Read more about Documents module in this blog entry.

Pages Module Overhaul

  1. Page categories for better organization
  2. Compare version tool outlines changes between two versions of the page
  3. Easy reordering and regrouping of pages
  4. Page can be reverted to any version at any time
  5. Pages tab shows recently updated documents grouped by date when last change was made

Read more about Pages module improvements in this blog entry.

Improved tasks and checklists

  1. Drag and Drop reordering for tasks in checklists, pages and tickets
  2. Drag and Drop reordering of checklists
  3. Checklist page lists all checklists and their tasks. No need to go to checklist details page to manage tasks
  4. Improved task creation workflow

Improved Dashboard and Project Overview

  1. New and improved activity log
  2. List of active projects shows all of your active projects
  3. Block that shows who was active in the last 15 minutes
  4. Project Overview now shows people involved with that project

Improved people section

  1. Friendlier interface makes navigation and management of people much easier
  2. User can be added to multiple project at once
  3. Improved New User form. By default it asks only for data it requires, but you can execute advanced actions if needed
  4. Welcome messages can be sent to users at any time
  5. Client companies you no longer work with can be archived. Members of client companies are no aware that their company is archived even if they visit the system

Other system improvements

  1. Subscribing and notifying people is more obvious because picker is listed right on the form instead in the popup
  2. Notifications sent by the system are more readable and contain more information
  3. Easier management of categories, project groups and document groups
  4. Easier subscription management
  5. New version and better integration of visual editor. Images can be uploaded directly from the editor
  6. Easier change of avatars, logos and project icons
  7. Test connection tool for mailing settings for easier troubleshooting
  8. Better module installation process
  9. Maintenance mode
  10. Easier translation management with XML import and export of language files
  11. Default assignment filter can be specified both globally and per user

and many, many more changes.

activeCollab 1.1.5

Enhancements:

  1. People can be moved from one company to another.
  2. Added confirmation dialog when permanently removing objects from trash.
  3. Max upload size is displayed on upload files form.
  4. Time reports can be created from Reports section inside of projects.
  5. People manager cannot promote person into administrator. Only administrators can do that.
  6. User's role cannot be changed if he or she is the last administrator in the system.
  7. Added visibility indicator to Pages module.
  8. When JavaScript is disabled, system will display error message alerting the user about it. This warning can be turned off by setting WARN_WHEN_JAVASCRIPT_IS_DISABLED to false in config/config.php.
  9. Added a page that provides instructions how to enable JavaScript in Microsoft Internet Explorer, Mozilla Firefox and Apple Safari.
  10. iCalendar feed added on user Schedule pages. Only project managers can use these feeds.
  11. Pending Payment status added to Time Records. There is no interface for this status, but it can be used by modules which control time record status (Invoicing tools for example).

Bug Fixes:

  1. Fixed the issue where Select Users popup is not working on New / Edit Assignment Filter and New / Edit Time Filter forms.
  2. Fixed the issue where successive milestones are extracted based on updated due date instead of original value.
  3. Long file names are trimmed to 40 characters on Files tab. Extremely long file names could break interface previously.
  4. Fixed problem where Project Starts On is sometimes off by one day due to time-zone miscalculation.
  5. If a user assignees only himself to an object, project leader now will also be subscribed to that object, automatically.
  6. Milestone moved to another project was preserving the relations to its child objects in the project that it has been moved from.
  7. No error/success messages were displayed after turning the cache off.
  8. If a user had only last name entered in his profile, his e-mail address was used in assignees block.
  9. Links were not automatically converted to be clickable in ticket body, milestone description and project overview.
  10. Fixed 'Can't copy image to work path' error upon pressing Submit with no file selected at edit project icon, edit avatar and edit company logo pages.
  11. Fixed problem where objects couldn't be associated with milestones in activeCollab setups with large amount of data.
  12. Corrected the problem with displaying "unknown project" in ticket history after moving a ticket to another project.
  13. Fixed bug where, in some cases, ago modifier returned Yesterday for actions that happened the day before Yesterday..
  14. Date selected by default in time popup now properly calculates user's time-zone.

API Changes:

  1. In time management calls, billable_status was added. is_billable and is_billed are left for compatibility reasons, but are consireder deprecated.

activeCollab 1.1.4

Enhancements:

  1. Object can be copied in parent project.
  2. Ticket time shows total time logged for ticket and all of its tasks.
  3. Improved time popup.
  4. Notify Assignees checkbox removed. Assignees will always be notified.
  5. Person creating a ticket, milestone, tasks, file, discussion or page will be automatically subscribed to it.
  6. Project section included when visiting comment, tasks, attachment and subscription pages.
  7. When tasks / ticket / milestone is re-assigned, notification is send to all old and new assignees except the person who did the update even if that person is one of the assignees.
  8. When user posts a comment he or she is automatically subscribed to object that was commented.
  9. Project leader is automatically subscribed to tickets created with Public Submit module.
  10. In New Task form priority and due date fields are hidden by default.
  11. User's project role is displayed on People project tab.
  12. If there are no assignees / subscribers selected when object is created, project leader will be automatically subscribed and notified.
  13. Scheduled tasks administration page shows time when was the last time scheduled tasks were executed (if ever).
  14. Comments on tickets, discussions, pages and files can be locked.
  15. Discussions can be pinned to the top of discussions list.
  16. Added support for servers that do not properly handle path info (some versions of IIS for example).
  17. Improved underlying Status module code.
  18. System and license information displayed on administration start page.
  19. Upload files form now returns more descriptive error messages.
  20. Project Exporter uses built in notifications instead of custom div-s.
  21. Daily, hourly and frequently tasks executed through command line do not display output unless there are errors to be displayed.

Bug fixes:

  1. Security fix! Instructions for restoring backup are stored in PHP file instead of plain text file.
  2. When object is copied in another project milestone ID is reseted if no milestone map is present.
  3. When ticket is copied it will use next available ticket ID in destination project instead of keeping ID from original project.
  4. Duplicate subscriptions bug resulted by incomplete cleanup routine fixed.
  5. Fixed subscription caching issues when subscribe_users() method is called.
  6. Fixed problem with HTTP status code not being properly passed when error page is displayed.
  7. Module info loading bug fixed.
  8. Master Categories will not let you define category names shorter than 3 letters.
  9. Fixed problem where duplicate notifications are sent to users when reminder was sent to people involved in a discussion.
  10. Fixed caching issue when module is uninstalled.
  11. Project Exporter exports completed milestones.
  12. Fixed issue where links to modules that user selected not to export are still present in navigation.

API improvements:

  1. /roles/system - List all system roles (permissions included). If user is not system administrator or people manager only default role ID is returned!
  2. /roles/project - List all project roles (permissions included). No permission checking is done.
  3. /role/:role_id - Show details of any role. No permission checking is done.
  4. Implemented support for work with project groups through API.
  5. New user fields: is_administrator, is_project_manager and is_people_manager.
  6. Project people request (/projects/:project_id/people) returns more information including users role and permissions for every project user.
  7. /projects/:project_id request now includes logged_user_permissions field with role of currently logged user and his or hers permissions on a selected project (similar to project people permission information).
  8. Assignee information is included in Ticket, Task and Milestone details.
  9. API for Status message - /status for listing and /status/add for submitting messages.
  10. avatar_url property added for User details request.
  11. logo_url property added for Company details request.
  12. icon_url property added for Project details request.
  13. Permissions array added to every project object details response with following permission values: can_edit, can_delete, can_change_visibility, can_movecan_copy and can_change_complete_status.

activeCollab 1.1.3

Enhancements:

  1. Objects can be moved / copied only by administrators, project managers and project leaders.
  2. Next page link on Projects, People, Files, Tickets, Discussions, Time, Dashboard and Status archive pages.
  3. Improved notification message for private objects.
  4. If attachment is private it is indicated with red dot on Files tab (as for Files).
  5. Calendar subscription link added to Project Calendar page.
  6. File description included in list of files on Files tab.
  7. Mass change ticket visibility added to tickets page.
  8. Links are recognized in text and automatically made clickable in comments.
  9. When time record is submitted through Quick add dialog project and Is billable values are preserved.
  10. Caching for project icon URL-s.
  11. System notifies user if he is viewing trashed object.
  12. Prettier notifications for private and trashed objects.
  13. HTMLPurifier can be turned off by adding define('PURIFY_HTML', false); to config/config.php file.
  14. On New User form Password field is automatically focused when user selects to specify password.

Bug fixes:

  1. Last file revision is not required to be instance of User class in order to be returned. It can also be an AnonymousUser.
  2. First field on reset password form is password field instead of text field.
  3. Completed, canceled or paused projects that project manager or administrator is not directly involved with are now visible in project archives.
  4. Fixed problem where milestone start and due dates can be one day of in some cases.
  5. Fixed problem with users last activity time logging and display.
  6. Helper that shows which action was done by whom now uses a timezone settings of logged in user to display proper time.
  7. Due helper ignores timezone settings when displaying due date tooltip (correct behavior).
  8. JavaScript confirm dialog for Remove User option on role details page.
  9. Is billable is set to Yes by default in Quick Add dialog.
  10. Fixed problem with tickets archive no remembering selected category for pagination.
  11. Fixed bug where pagination does not remember parent object when listing time records attached to task or a ticket.
  12. One day shift for milestones fixed. Calendar applications do not include DTEND day so it needs to be set to the day after due date.
  13. Fixed problem where not billable records are not counted correctly in time reports.
  14. Parent page select box does not list page that is being updated and its sub-pages.
  15. Fixed problem where attachments always inherit author from parent object instead of using logged user.
  16. Fixed problem where not all assignees are properly move into a project created from template.
  17. Fixed broken image link to logo in error layout and on login / forgot password pages in mobile interface.
  18. Fix for project icon not being displayed in Jump to Project dialog if it was inherited from client.

AP I improvements:

  1. Added read_only flag to /info. Value of this flag will be 0 if API supports both read and write requests and 1 if it supports only read requests.

activeCollab 1.1.2

Enhancements:

  1. Removed Date time format field from profile. Instead of being a separate configuration option it is now made out of date and time options.
  2. Text input is automatically focused when status update dialog is displayed.
  3. People who do not have can_see_private_objects permissions but can create projects now do not have ability to select default visibility (Private value will be set automatically).
  4. Object visibility indicator for tickets, discussions and checklists with popup that explains who can see private objects.
  5. Session ID is not force refreshed on every request *
  6. Checkbox icons next to tasks user cannot complete are not clickable any more.
  7. If user does not have permissions to create tasks under a specific object (ticket, page, checklist) New Task link is not displayed in Tasks section header.
  8. When breaking recent activities per day system now checks users timezone instead of just using GMT value.
  9. Ago helper now displays number of hours instead of Few hours ago.
  10. Better localization coverage.
  11. Backup module enhancements. It does not require specific MySQL configuration any more but uses PHP to generate / restore SQL files.
  12. Site logo and favicon graphics are now in septate folder so cannot override them by accident when updating content of /assets folder.

Bug fixes:

  1. Fixed problem with filtering time reports for a specific day.
  2. Fixed some RSS / iCal feed links that were broken.
  3. Fixed :project problem in select visibility control.
  4. Script will die when CSV export is served.
  5. Checklist tasks are available on assignments page.
  6. Only people who can edit specific tickets can attach tasks to them.
  7. Only people from a specific project can be reminded using Send Reminder tool.
  8. Fixed CSS/JS caching issues with Safari.
  9. Fixed upload issue for Windows host where slashes from uploaded file path were stripped out.
  10. Today / Late counter fixed.
  11. Administrators, project managers and project leaders have edit / delete object permissions no matter what.
  12. Fixed issue when time record is shown in project history even though user does not have permissions to access time (access permission is by mistake inherited from parent object).
  13. Fixed date format issues on Windows servers.
  14. New discussion form does not lose message field when title is too short and needs to be revised.
  15. Fixed problem where attachment cannot be delete even though user has permissions to edit parent object.
  16. Fixed problem with first screen that needs point you to the installer, but fails to do that on Windows.
  17. Permissions cache is cleaned when role is updated or deleted.
  18. Assignments cache is completely cleared when assignments of any particular object are changed.

API improvements:

  1. Added logged user URL in /info call so you can see who the logged person is for API key you are using.
  2. Added type to all project objects in the system. This is especially important when you list objects of mixed type.
  3. Added /project/#project_id/user-tasks call that lists all tasks currently logged user can work on in a particular project
  • This is configurable - to force refresh session ID on every request put define('ALWAYS_CHANGE_SESSION_ID', true); into config/config.php

activeCollab 1.1.1

Enhancements:

  1. Projects are ordered by name in Quick add dialog
  2. More company fields included in API result for company request
  3. System will not allow you to submit an empty status message
  4. More descriptive select_visibility helper
  5. Turn on / off thumbnail creation for images (on by default)
  6. Limit max image size when thumbnail is created (default is 500kb)

Bug fixes:

  1. API is working properly with .htaccess hack for clean URL-s
  2. Send Reminders properly filters out people
  3. Dictionary does not exist error when create a new translation file has been fixed
  4. Starred items from Trash are not counted on Dashboard
  5. Fixed problem with read / unread discussions
  6. When module is removed all reminders for old objects are also removed
  7. Time filtering by date range fixed
  8. Problem with Project Exporter module and open_basedir restriction has been fixed
  9. Problem with filtering billable, but not billed hours fixed
  10. When project is created from template number of open / completed tasks and project progress are refreshed
  11. Fixed problem when time record is added from time page for a particular object
  12. HTTP errors for status update count asynchronous request fixed
  13. Fixed problem when user did not receive email notification in prefered language
  14. Problem with members not being able to see their assignments fixed

activeCollab 1.1

New modules:

  • Mobile access - Interface created just for mobile devices. iPhone support included - you can finally touch activeCollab!
  • Backup - automatically back up your database and files.
  • Project Exporter - Export project data in series of static, HTML files that does not require activeCollab to be displayed. Burn it on a CD, upload to your website or send it to your clients.
  • Public Submit - Let people submit tickets without logging into activeCollab. CAPTCHA protection included.
  • Status - Simple, Twitter like notifications system built right into activeCollab.

Time tracking improvements:

  • Reusable reports that work both globally and on project level. Reports can list all time records or calculate how much time every user reported.
  • Ability to mark billable time record as billed and filter it out in reports.
  • Time tracking for subtasks.
  • New time widget makes it super easy to track time.

Improved assignments page:

  • Powerful assignments filter that let you select not just your tasks but tasks assigned to any company or group of people.
  • RSS for any assignment filter.
  • Ability to mark filter as private so only you can use it.
  • Ability to mark task as completed directly on assignment page.
  • Ability to subscribe to every task and receive email notification on status change directly on assignments page.
  • Track time for every ticket or subtask directly on assignments page.

Calendar improvements:

  • Tickets and tasks are listed in calendar.
  • Tasks, tickets and milestones can be marked as completed directly on calendar page.
  • Improved performance of calendar pages.

Improved search:

  • Search for users.
  • Search for project or inside of projects.
  • Quick search dialog is really handy. It will show top 5 results directly in the quick search dialog and give you link if you need more.

Localization support:

  • Translate the interface in as many languages you want.
  • Per user language settings.
  • Email translates also support translations and are aware of user language preferences. Every user will be notified in their preferred language.
  • Per user date and time formatting settings.
  • Administration tools for language management and translation.

New permissions and roles:

  • Every user can have a system role now, not just members of owner company.
  • Project roles are reusable sets of project permissions. Users can have different roles in different projects.
  • Per module access permissions.
  • New system permissions - can add project, can see private objects and more.

File module improvements:

  • Attachments are listed in files listing.
  • Thumbnails are created for images.
  • Tool that lets you upload multiple files at once has been added.
  • Improved workflow.

API improvements:

  • Write support for API is added.
  • API methods are documented.
  • Configuration option that controls whether API is enabled or disabled. This configuration option also lets you set up API to work in read only or in read / write mode.

Reminders:

  • Send reminders regarding a ticket, discussion or file to assignees, subscribers, specific person or people who commented on it.
  • Reminders include email notification and entry in “Things that require your attention” block that is shown on dashboard.
  • Read more about reminders in Developer Blog...

Other changes:

  • Any project can be used as a template for new project (read more in Developer Blog).
  • Auto-assignments system has been redone.
  • Modules that are not required for system to work properly can be uninstalled.
  • Checklists module is not installed in Corporate version by default. You can install it if you really need it.
  • User password are not readable in database any more.
  • System that determines witch objects are new since your last visit is more reliable now.
  • When list of assignees is changed everyone is notified about the changes (old and new assignees with complete list of changes).
  • Links for creating new objects on milestone details page.
  • Users last visit time is displayed on profile page.
  • A simple tool for managing file, discussion and ticket categories that are created when new project is created.

Plus many many more fixes and improvements.

activeCollab 1.0.6

Enhancements:

  1. Improved role creation process

Bug fixes:

  1. Fixed project group duplication on projects page when logged in user is a member of client company
  2. Fixed build script bug that resulted in empty names for initial set of roles

activeCollab 1.0.5

Bugs fixed:

  1. Problem with redirection on the project people page when there are no users assigned to a project
  2. Files are sorted so the latest ones are on top
  3. Support for passing path_info through query string (for compatibility with hosts such as Dreamhost)
  4. Assignments page is now displayed properly even when there are no projects in the database
  5. When ticket is moved, the system will make sure to assign it an ID which is not used in destination folder
  6. When ticket is moved, associated time records are also moved
  7. On the Projects page, only project groups where user has projects are available
  8. Problem with email encoding
  9. Line breaks are preserved in discussion related email notifications

activeCollab 1.0.4

Features and Improvements:

  1. Milestones start and end date can be the same day
  2. Members of client companies can track time (if they have proper permissions)
  3. Added relation between files and milestones
  4. Added Manage Attachments button to comment options group (right to authors name)
  5. Added Manage / Add links to Attachment and Subscription headers on object details page
  6. Improved usability of comment options
  7. Added attachment field to New Discussion form
  8. activeCollab will keep connection alive by refreshing user session every 5 minutes for as long as any activeCollab page is open
  9. When theme is updated in Administration it will be updated for all the users
  10. When extracting task name system will use first 15 words instead of 5
  11. Debug backtrace is saved only for fatal errors - saves some time on PHP4
  12. Removed timezone information from date pickers

Bug fixes:

  1. Fixed issue where email notifications get cut off when containing multibyte characters on some systems
  2. Fixed pagination on project page when browsing projects by company or by group
  3. Fixed pagination problem on Files and Discussions pages
  4. Proper project leader is selected on edit project page
  5. Fixes JavaScript and CSS issue for servers with zlib.output_compression set to On
  6. Comments, Attachments and Tasks will properly inherit parents visibility
  7. Fixed issue with due display and calculation
  8. Fixed problem with HTML entities being escaped two times in the activity logs
  9. Fixed problem when user cannot be subscribed to the object if he or she was already a subscriber
  10. File backend cache uses PHP files instead of plain text files
  11. .htaccess that restricts direct access to files in /cache, /import, /logs, /thumbnails and /upload folders added
  12. Multibyte operations are forcing UTF-8 encoding
  13. White is used instead of black when resizing images with transparent areas
  14. Fixed select_user helper so it does not break the script when data is out of sync in database
  15. Pagination helper will render first page even when there are no items to show (information that there are no items is displayed in that case)
  16. JavaScript error when selecting user or assignee fixed
  17. Better data cleanup on project deletion

activeCollab 1.0.3

Bug fixes:

  1. Fixed the problem with time tracking module being too restrictive about who can and who can't add time records

activeCollab 1.0.2

Features and Improvements:

  1. Improved compatibility with Safari 2
  2. Improved search results page
  3. Trash added to the Main Menu
  4. When project is created, user is redirected to Add People page automatically
  5. Tasks without due date are not listed on Assignments page when ordered by due date
  6. At Assignments page, due date is displayed next to the task creator
  7. When assignments are ordered by creation time, new column with creation time is displayed

Bug fixes:

  1. Fixed problem with query string generation on PHP5 versions lower than PHP 5.1.2
  2. Fixed syntax error in HTML Purifier when trying to use DOMLex on latest PHP 4 version, even though it is supported only in PHP5
  3. Fixed Not Found issue with servers that do not provide good PATH_INFO value
  4. Administrators and Project Managers can see all of the projects in Projects section
  5. No permission to remove / update user permissions on some systems
  6. No permission to remove / delete category
  7. Calendar displaying all tasks / tickets to the people not assigned to any projects
  8. Add Timerecord permission enforced
  9. Files do not get attached to objects in PHP4
  10. Mass mailer not sending emails
  11. JavaScript initialization after AJAX request on Trash / Starred page