Remaining Estimate Portlet

Name Remaining Estimate Portlet
Version 1.0
Product Versions Jira 3.8
Author(s) Ivo Limmen (ivo -at- strawberries -dot- nl), Strawberries
Homepage  
Price Free
License BSD
JavaDocs  
IssueTracking  
Download JAR https://svn.atlassian.com/svn/public/contrib/jira/remaining-estimate-portlet/jars/remaining-estimate-portet-1.0.jar
Download Source https://svn.atlassian.com/svn/public/contrib/jira/remaining-estimate-portlet/trunk

Description/Features

This portlet is meant to give more information on when a particular release is finished. It is modeled after the Two Dimentional Statistics portlet but the X and Y axis can not be changed. Horizontally it shows the assignees and vertically it shows the releases. Based on the issues from a configured filter it will show the amount of issues for a particular assignee for a given version. It also shows the remaining estimate. If not all issues have a remaining estimate the portlet will show the total in red.

Usage

  1. On the dashboard view click Configure ON
  2. Click "Add a new portlet"
  3. Select "Remaining Estimate Portlet" and click "Add"
  4. Click on the edit button.
  5. Select the filter you would like to see in the portlet.
  6. Select if you want to see totals on the portlet.
  7. Click on 'Save'.

Version History

Version
Date Description
1.0
2007-06-15 Initial release

Screenshots

Labels

jira38 jira38 Delete
plugin plugin Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Jul 31, 2007

    Vincent Eggen says:

    Oups. Doesn't work on our 3.10 instance. Throws a NPE: 2007-07-31 11:27:54,72...

    Oups. Doesn't work on our 3.10 instance.
    Throws a NPE:

    2007-07-31 11:27:54,726 http-8080-Processor13 ERROR [strawberries.jira.portlet.RemainingEstimatePortlet] Could not create velocity parameters null
    java.lang.NullPointerException
            at nl.strawberries.jira.portlet.RemainingEstimatePortlet.createCollection(RemainingEstimatePortlet.java:95)
            at nl.strawberries.jira.portlet.RemainingEstimatePortlet.getVelocityParams(RemainingEstimatePortlet.java:159)
            at com.atlassian.jira.portal.PortletImpl.getViewHtml(PortletImpl.java:68)
            at com.atlassian.jira.web.portlet.bean.PortletRenderer.getNormalHtml(PortletRenderer.java:83)
            at com.atlassian.jira.web.portlet.bean.PortletRenderer.renderPortlet(PortletRenderer.java:61)
            at org.apache.jsp.secure.views.dashboard_jsp._jspService(dashboard_jsp.java:1262)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
            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 org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
            at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
            at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
            at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
            at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraServletDispatcher.java:279)
            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:73)
            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:181)
            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.JIRAProfilingFilter.doFilter(JIRAProfilingFilter.java:16)
            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:43)
            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.RequestCleanupFilter.doFilter(RequestCleanupFilter.java:49)
            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.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.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.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 com.atlassian.jira.appconsistency.db.DatabaseCompatibilityEnforcerFilter.doFilter(DatabaseCompatibilityEnforcerFilter.java:39)
            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.valves.AccessLogValve.invoke(AccessLogValve.java:541)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
            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:595)
    
    

    Any idea ?