JIRA GANTT Chart Report Plugin

Name JIRA GANTT Chart Report Plugin
Version 0.7
Product Versions JIRA 3.4+
Author(s) Dylan Etkin,frank@polscheit.de
Homepage JIRA GANTT Chart Report Plugin
Price free!
License  
Issue Tracking http://developer.atlassian.com/jira/browse/GNT
Download JAR jira-graphical-project-gantt-report-0.7.jar, all versions
Download Source http://svn.atlassian.com/svn/public/contrib/jira/jira-ganttchart-report-plugin/trunk/

See also the ILOG Gantt Bridge

Description/Features

A report that will generate gantt charts over a specifed time period for issues with time tracking information
Report displaying a gantt chart of user assigned issues and their progress within a specifed project over a specified time. This report requires time tracking to be turned on before it can be generated. NOTE: Issues that do not have a Due Date and a Time Estimate set are not shown in this report.

Brief Install Instructions

  1. Copy the jar into JIRA's WEB-INF/lib:
    • jira-graphical-project-gantt-report-0.x.jar
  2. Restart JIRA
  3. Make sure that time tracking is enabled and that some issue has the estimate and due date set
  4. You're done!

Version History

Version Description
0.5 Initial version
0.5.1 fixed version (see comment by Philip Herbst at Jun 16, 2005 06:47) incl. enhancements: new column with linked issues + gray background color for each second row to improve readability
0.5.2  fixed up to work with JIRA 3.5 and removed silly validation on the date format 
0.5.3 fixed up issue with projects curly braces
0.6 fixed incompatibility with latest releases of JIRA 

Open Issues

See Also

The JIRA Charting Plugin

Screenshots

Labels

plugin plugin Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Jun 16, 2005

    Philip Herbst says:

    i think theres a bug in line 9 of ganttchart-report.vm <img src='/charts?fi...

    i think theres a bug in line 9 of ganttchart-report.vm
    <img src='/charts?filename=$ganttChart' border='0' />

    shouldnt it be
    <img src='$req.contextPath/charts?filename=$ganttChart' border='0'/> ?

    1. Jun 27, 2005

      Dylan Etkin says:

      You are right Philip, we will include that in the next release. Thanks

      You are right Philip, we will include that in the next release. Thanks

  2. Oct 04, 2005

    Matthias Marschall says:

    It seems that if the report contains unassigned issues, I get the following erro...

    It seems that if the report contains unassigned issues, I get the following error:

    java.lang.IllegalArgumentException: Null 'name' argument. at org.jfree.data.general.Series.(Series.java:103) at org.jfree.data.general.Series.(Series.java:92) at org.jfree.data.gantt.TaskSeries.(TaskSeries.java:68) at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.getChartData(GraphicalGanttChartReport.java:298) at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.generateReportHtml(GraphicalGanttChartReport.java:120)

    As soon as I run it on a project, where all issues to be contained in the gannt chart, are assigned it works.

    I'm using 0.5.1 on jira 3.3.1

  3. Oct 11, 2005

    Anonymous says:

    My understanding was that this plugin would work from start date to end date, no...

    My understanding was that this plugin would work from start date to end date, not working back from end date with the estimate of work.

    I've copied the jar into Jira's WEB-INF/lib directory. I've made a "Start Date" custom field, and populated issues with Start Date, End Date, and work required, but I don't get tasks filling from start to end date. Any hints as to what I'm doing wrong?

    Alister

  4. Oct 26, 2005

    Anonymous says:

    How about taking out these unneccessary date tests (in GraphicalGanttChartReport...

    How about taking out these unneccessary date tests (in GraphicalGanttChartReport.java)
    If one uses different (better  date formats like the ISO (e.g. 2005-10-26) this plugin simply doesn't work at all

      - Panu

    OutlookDate outlookDate = outlookDateManager.getOutlookDate(i18nBean.getLocale());
    
    -        if (startDate == null || outlookDate.isDatePickerDate(outlookDate.formatDMY(startDate))) {
    +        if (startDate == null) { // || outlookDate.isDatePickerDate(outlookDate.formatDMY(startDate))) {
    action.addError("startDate", action.getText("report.ganttchart.startdate.required"));
    }
    
    -        if (endDate == null || outlookDate.isDatePickerDate(outlookDate.formatDMY(endDate))) {
    +        if (endDate == null) { // || outlookDate.isDatePickerDate(outlookDate.formatDMY(endDate))) {
    action.addError("endDate", action.getText("report.ganttchart.enddate.required"));
    }
    
  5. Nov 02, 2005

    Anonymous says:

    Currently the report is based on one Project. This is too simplistic. I'd like t...

    Currently the report is based on one Project. This is too simplistic. I'd like to create a report for e.g. a specific user, or any thing. Is it possible to have the report beeing generated based on the result of an arbitrary filter  (as is done fir the 'Single  Level Group By Report')?

  6. Nov 02, 2005

    Mark Chaimungkalanont says:

    There're no specific plans for upgrading the Gantt chart at the moment. The sour...

    There're no specific plans for upgrading the Gantt chart at the moment. The source code is available so if you want to, it shoudn't be too hard to extend that to do what you want it to!

  7. Nov 17, 2005

    Anonymous says:

    I get a column in my report named "Verknüpfungen".  ????

    I get a column in my report named "Verknüpfungen".  ????

    1. Nov 17, 2005

      Keith says:

      Hi, This column has been added to display the links to the issue - but only the...

      Hi,

      This column has been added to display the links to the issue - but only the German translation has been supplied for the column heading. In order to display the correct column heading, please edit the file:

      ../src/etc/com/atlassian/jira/plugin/reports/ganttchart/ganttchart_report.properties

      and change the following line:

      report.ganttchart.dependency = Links

      Regards,
      Keith

      1. Mar 27, 2006

        stew stryker says:

        For those of us who aren't lucky enough to be Java developers, could someone ple...

        For those of us who aren't lucky enough to be Java developers, could someone please add the executable to includes this edit here?

        Thanks,

        Stew

        1. Mar 28, 2006

          Brian Nguyen says:

          Hi Stew, Unfortunately, it is unlikely that an executable will be added to corr...

          Hi Stew,

          Unfortunately, it is unlikely that an executable will be added to correct this problem. 

          So in order to fix this problem you should:

          1. Unarchive the the .jar file (winzip, etc.)
          2. Goto the file /etc/com/atlassian/jira/plugin/reports/ganttchart/ganttchart_report.properties
          3. Edit the line report.ganttchart.dependency = Verknüpfungen
          4. In the directory where you placed the files run the following command from the command line:jar cvf ../jira-graphical-project-gantt-report-0.5.3.jar -C ./ .
          5. This will create the new jar file for you to install as above.

          Let us know if you have any further questions. 

          Thanks,
          Brian 

          1. Jan 08, 2008

            Joaquin Garrido says:

            Considering how long this issue has been known, how about adding this fix into t...

            Considering how long this issue has been known, how about adding this fix into the current release?

  8. Dec 06, 2005

    Anonymous says:

    I think you have miseed the esential, hHow do i invoke this report ?! I spet...

    I think you have miseed the esential, hHow do i invoke this report ?! I spet 30 minutes i did not figure it up.....

    1. Dec 06, 2005

      Jonathan Nolen says:

      Reports can be found in the sidebar of the project view. Click on a project name...

      Reports can be found in the sidebar of the project view. Click on a project name and look at the first item in the right hand "Reports". Your report should be listed there.

  9. Jan 31, 2006

    Vikesh Harbham says:

    I'm running JIRA v.3.4.3. I've installed plugin 0.5.1 correctly and the link is ...

    I'm running JIRA v.3.4.3. I've installed plugin 0.5.1 correctly and the link is appearing in the Report section.
    However, when I select a project, start date and end date, I receive the "There are no issues within the specified range" screen even though there are issues within the range! In summary, I can't view any reports using the search facility provided by the plugin.

    1. Jan 31, 2006

      Justin Koke says:

      Hi Vikesh, Have you tried running the same query from "Find Issues"? My first gu...

      Hi Vikesh,
      Have you tried running the same query from "Find Issues"? My first guess would be that you are setting the start date and end date to be the same? This would actually return 0 results looking at the current implementation of the plugin. Since the start date and end date would both be 01-02-2006 00:00:00 not 01-02-2006 00:00:00 and 01-02-2006 23:59:59

      Justin

      1. Feb 03, 2006

        Vikesh Harbham says:

        Thanks for your reply Justin. The query runs fine in "Find Issues". The Start ...

        Thanks for your reply Justin.

        The query runs fine in "Find Issues".

        The Start and End Dates are not the same. I have 5 issues created in Jan 2006. If for example, I do Start Date="6-Dec-2005" End Date = "7-Feb-2007", I still receive "There are no issues wihtin the specified range." I have tried all sorts of dates and it still doesn't work for me.

        Please advise.

        Thanks

        1. Feb 03, 2006

          Vikesh Harbham says:

          Sorry, I forgot to mention that the Due and Created dates are in between Start D...

          Sorry, I forgot to mention that the Due and Created dates are in between Start Date="6-Dec-2005" End Date = "7-Feb-2007"

          1. Feb 03, 2006

            Vikesh Harbham says:

            Okay. Ignore my original question. I didn't have the Original Estimate field fil...

            Okay. Ignore my original question. I didn't have the Original Estimate field filled in.

            Thanks for your help anyway...

  10. Feb 09, 2006

    Chad Skeeters says:

    This may need to be updated to support 3.5. I'm getting an invalid start and en...

    This may need to be updated to support 3.5. I'm getting an invalid start and end date no matter what date I choose.

  11. Feb 14, 2006

    Bettina Zucker says:

     I changed the Look and Feel of the date picker in the file atlassian-jira/...

     I changed the Look and Feel of the date picker in the file atlassian-jira/WEB-INF/classes/jira-application.properties to be the same as in my older Jira version (3.3.3).
     The plugin accepted the date format. In case of an empty project now the plugin worked correctly, outputting: "There are no issues within the specified range."
     But: now I have a problem in another place of the plugin. I got the following error message (just the beginning):

    message Could not execute action [ConfigureReport]:com.atlassian.jira.issue.link.LinkCollection.getAllIssues()Ljava/util/Set;
    <p><small><small><pre>java.lang.NoSuchMethodError: com.atlassian.jira.issue.link.LinkCollection.getAllIssues()Ljava/util/Set; at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.categorizeSearchResults(GraphicalGanttChartReport.java:275)   ...

     Since the source is accessible I could find the place in the source where this function is called, but I'm not a Java programmer and I could not find out how to debug this.

    The function getAllIssues() is still present (and still public) in Jira 3.5 as can be seen in:
    http://www.atlassian.com/software/jira/docs/api/3.5/com/atlassian/jira/issue/link/LinkCollection.html&nbsp;

    Maybe someone has an idea?

    Cheers                    Bettina

     

    1. Feb 14, 2006

      Bettina Zucker says:

      Sorry, a blank smuggled itself into my link, the correct URL is: http://www.atla...
  12. Feb 15, 2006

    Dylan Etkin says:

    Hey All, I have updated this plugin so that it will work with JIRA 3.5. It just...

    Hey All,
    I have updated this plugin so that it will work with JIRA 3.5. It just need to be built against the newer version of JIRA. While I was in there I got rid of the validation on the date format so that it should work with whatever date format you are using. I hope this fixes things up for you.
    Thanks,
    Dylan

    1. Mar 27, 2006

      stew stryker says:

      Dylan, Would you mind adding the English translation of "Verknüpfungen" that Ke...

      Dylan,

      Would you mind adding the English translation of "Verknüpfungen" that Keith mentioned above to the latest executable us non-Java programmers can download and use?

      Thanks,

      Stew 

  13. Apr 17, 2006

    Julio Faerman says:

    Question:    - How do i set start date ? Creating a "Start Date" fiel...

    Question:

       - How do i set start date ? Creating a "Start Date" field does not seem to work.

    Issue (sorry, could not login to tracker):

        - Create a issue, log work for today. Log more work, changing estimates to take longer. Get the report and you will see you will have worked in the past, because changing estimates change the start date, not the end date of the issue.

    Is there any workaround for this?

    Thanks,

    Julio 

     

    1. Apr 18, 2006

      Nick Menere says:

      Julio, The Gantt chart uses the start date as the Due date minus the estimate. ...

      Julio,

      The Gantt chart uses the start date as the Due date minus the estimate. Not very good but the best we have in Jira.
      Tehre is no real work around for this currently in JIRA unfortunately.

      Sorry.

      Cheers,
      Nick

  14. Apr 21, 2006

    Bernhard Riegel says:

    Hello, I just installed the current release of the gantt-plugin (0.5.2) running...

    Hello,

    I just installed the current release of the gantt-plugin (0.5.2) running with JIRA 3.5.3 (as a war-archive from my tomcat 5.5/mysql4 installation). Finally, after deleting the tomcat/work and tomcat/webapps/jira directories, I succeeded in accessing the plugin.

    But whenever I try to create a Gantt-report filling in the dates and clicking "create", I get the following error:

    Could not execute action [ConfigureReport]:Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.<p><small><small><pre>java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62) at java.awt.Font.initializeFont(Font.java:308) at java.awt.Font.<init>(Font.java:344) at org.jfree.chart.axis.Axis.<clinit>(Axis.java:121) at org.jfree.chart.ChartFactory.createGanttChart(ChartFactory.java:966) at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.generateAndSaveGanttChart(GraphicalGanttChartReport.java:208) at

    as I am running a webapplication, I do not understand the message at all. There is no X-Server running on the linux server and I will never have any output on a X-Server.

    Going back with the browser's  back-button an trying again results in:

    Could not execute action [ConfigureReport]:null<p><small><small><pre>java.lang.NoClassDefFoundError at org.jfree.chart.ChartFactory.createGanttChart(ChartFactory.java:966) at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.generateAndSaveGanttChart(GraphicalGanttChartReport.java:208) at

    Are there some undocumented jar-dependencies with this plugin?

    (in my installation jfreechart-1.0.0-pre2.jar is included)

    Any suggestion?

    Thanks, Bernhard 

    1. Apr 23, 2006

      Keith says:

      Hi Bernhard, The following post explains this error quite well: http://www.jgu...

      Hi Bernhard,

      The following post explains this error quite well:

      http://www.jguru.com/faq/view.jsp?EID=222296

      In short, the Java application may not know how to find or connect to an X display server. This can be rectified by setting the DISPLAY variable appropriately - or by starting JIRA with the following flag:

       -Djava.awt.headless=true
      

      Let us know if the problem persists.

      Regards,

      Keith 

  15. Apr 24, 2006

    Bernhard Riegel says:

    Hello Keith, with option "-Djava.awt.headless=true" the plugin now works as exp...

    Hello Keith,

    with option "-Djava.awt.headless=true" the plugin now works as expected

    Thanks,

    Bernhard 

  16. May 23, 2006

    Bettina Zucker says:

    Hello, the plugin seems not to work with Jira 3.6.x. I tested it out with Jira...

    Hello,

    the plugin seems not to work with Jira 3.6.x.

    I tested it out with Jira 3.6.1 enterprise standalone and got following error:

    2006-05-23 16:10:00,789 ERROR [webwork.dispatcher.ServletDispatcher] Could not execute action
    java.lang.NoSuchMethodError: com.atlassian.jira.issue.link.LinkCollection.getAllIssues()Ljava/util/Set;
        at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.categorizeSearchResults(GraphicalGanttChartReport.java:275)
        at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.getIssuesForProjectInRange(GraphicalGanttChartReport.java:149)
        at com.atlassian.jira.plugin.reports.ganttchart.GraphicalGanttChartReport.generateReportHtml(GraphicalGanttChartReport.java:110)
        at com.atlassian.jira.web.action.browser.ConfigureReport.doExecute(ConfigureReport.java:96)
        at webwork.action.ActionSupport.execute(ActionSupport.java:153)
        at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:58)
        at webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:132)
        at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraServletDispatcher.java:178)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.jira.web.filters.AccessLogFilter.doFilter(AccessLogFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
        at com.atlassian.jira.web.filters.SitemeshExcludePathFilter.doFilter(SitemeshExcludePathFilter.java:38)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:182)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:177)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132)
        at com.atlassian.jira.web.filters.ProfilingAndErrorFilter.doFilter(ProfilingAndErrorFilter.java:25)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.jira.web.filters.ActionCleanupDelayFilter.doFilter(ActionCleanupDelayFilter.java:39)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.jira.web.filters.gzip.GzipFilter.doFilter(GzipFilter.java:72)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:37)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:534)
     

    Are you going to make a new version?

    Cheers

    Bettina

    1. May 24, 2006

      Mark Michaelis says:

      Experienced the same problem with 3.6.2

      Experienced the same problem with 3.6.2

      1. May 24, 2006

        Mark Michaelis says:

        Created Issue GNT-3 for this bug.

        Created Issue GNT-3 for this bug.