ActiveCollab Generic Server for PhpStorm

As there is no support for ActiveCollab in PhpStorm I build this work-around. With this hack we can use the Open Task functionality inside PhpStorm

tasklist

Installation

Download this package on a PHP server and note the url (eg: https://foo.bar.tld). Make sure the public folder is your document_root.

Usage

Obtain the needed Template Variables

First we need to obtain some data we will need later on. This data is returned by our package, but we need to construct an url.

We will need to append some GET parameters to our /login url.

  • username: your ActiveCollab Username
  • password: your ActiveCollab Password
  • account: your ActiveCollab instance number, if your Active Collab url is: https://app.activecollab.com/123456, this is 123456.

The final url will look something like: https://foo.bar.tld/login?username=john@doe.com&password=super-secret-password&account=123456

If you open this url in a browser it will result in a JSON-object like below

{
  token: "12-3858f62230ac3c915f300c664312c63f",
  acArl: "https://app.activecollab.com/123456",
  userId: 1337
}

Configure the Generic Task Server

  • Go to "Tools → Tasks & Contexts → Configure Servers ...".
  • Add a new "Generic" server type.

General tab

  • Enter the url where you installed the "server" (eg: https://foo.bar.tld) in the field "Server URL.
  • Check "Login anonymously".

Add needed template variables

  • Open the tab "Server Configuration".
  • Click "Manage Template Variables".
  • Add the needed variables based on the data we earlier retrieved.

You should end up with something like:

tasklist

Configure the urls

Set the "Task List URL" to {serverUrl}/task-list/$projectId?token={token}&acUrl={acUrl}&userId={userId}, where you replace $projectId with the project id in Active Collab.

If the url for your project is https://app.activecollab.com/123456/projects/789, the project id is 789.

Configure the response type

  • Choose JSON as the "Response Type".
  • Add the correct paths for each property as indicated in the screenshot below.

tasklist

Known issues

  • There is no support for self-hosted ActiveCollab instances.
  • There is no decent error handling.