# HG changeset patch # User smith # Date 1211580370 14400 # Node ID 4ca1ef5be75e79acaeab8feb2c264168e3b83ccf # Parent 56349dc044f5ee5f26d621dcfd78b76681d71d1b Added validators for Time tracking. New validator to require Time Spent. diff -r 56349dc044f5 -r 4ca1ef5be75e ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireNoTimeRemainingValidator.java --- a/ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireNoTimeRemainingValidator.java Thu May 22 15:45:43 2008 -0400 +++ b/ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireNoTimeRemainingValidator.java Fri May 23 18:06:10 2008 -0400 @@ -8,17 +8,12 @@ */ package org.nwoca.ssdt.jira; -import com.atlassian.jira.ManagerFactory; -import com.atlassian.jira.issue.CustomFieldManager; import com.atlassian.jira.issue.Issue; import com.atlassian.jira.issue.IssueUtils; -import com.atlassian.jira.issue.fields.CustomField; import com.opensymphony.module.propertyset.PropertySet; import com.opensymphony.workflow.InvalidInputException; import com.opensymphony.workflow.Validator; import com.opensymphony.workflow.WorkflowException; -import java.util.ArrayList; -import java.util.List; import java.util.Map; /** @@ -29,21 +24,21 @@ */ public class RequireNoTimeRemainingValidator implements Validator { - private final List cfs = new ArrayList(); +// private final List cfs = new ArrayList(); /** * Creates a new instance of RequireDocumentIssueValidator. */ public RequireNoTimeRemainingValidator() { - CustomFieldManager cfm = ManagerFactory.getCustomFieldManager(); - for (Object obj : cfm.getCustomFieldObjects()) { - CustomField cf = (CustomField) obj; - if (!cf.getName().contains("Message")) { - cfs.add(cf); - System.out.println("Custom Field: " + cf.getName()); - } - - } +// CustomFieldManager cfm = ManagerFactory.getCustomFieldManager(); +// for (Object obj : cfm.getCustomFieldObjects()) { +// CustomField cf = (CustomField) obj; +// if (!cf.getName().contains("Message")) { +// cfs.add(cf); +// System.out.println("Custom Field: " + cf.getName()); +// } +// +// } } diff -r 56349dc044f5 -r 4ca1ef5be75e ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireTimeSpentValidator.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireTimeSpentValidator.java Fri May 23 18:06:10 2008 -0400 @@ -0,0 +1,43 @@ +/* + * RequireDocumentIssueValidator.java + * + * Created on May 14, 2007, 1:04 PM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ +package org.nwoca.ssdt.jira; + +import com.atlassian.jira.issue.Issue; +import com.atlassian.jira.issue.IssueUtils; +import com.opensymphony.module.propertyset.PropertySet; +import com.opensymphony.workflow.InvalidInputException; +import com.opensymphony.workflow.Validator; +import com.opensymphony.workflow.WorkflowException; +import java.util.Map; + +/** + * Requires zero time remaining if the issue has Time Tracking. Can use + * during resolve step. + * + * @author SMITH + */ +public class RequireTimeSpentValidator implements Validator { + + /** + * Creates a new instance of RequireDocumentIssueValidator. + */ + public RequireTimeSpentValidator() { + } + + public void validate(Map transientVars, Map args, PropertySet ps) + throws InvalidInputException, WorkflowException { + + Issue issue = (Issue) transientVars.get("issue"); + + if (IssueUtils.hasTimeTracking(issue) && (issue.getTimeSpent() == null || issue.getTimeSpent().longValue() == 0)) { + throw new InvalidInputException("There is has been no Time Spent on this issue. Please update work log."); + } + + } +} diff -r 56349dc044f5 -r 4ca1ef5be75e ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireTimeSpentValidatorFactory.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ssdt-jira-plugins-v2/plugins/src/main/java/org/nwoca/ssdt/jira/RequireTimeSpentValidatorFactory.java Fri May 23 18:06:10 2008 -0400 @@ -0,0 +1,40 @@ +/* + * RequireDocumentIssueValidatorFactory.java + * + * Created on May 14, 2007, 2:56 PM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package org.nwoca.ssdt.jira; + +import com.atlassian.jira.plugin.workflow.AbstractWorkflowPluginFactory; +import com.atlassian.jira.plugin.workflow.WorkflowPluginValidatorFactory; +import com.opensymphony.workflow.loader.AbstractDescriptor; +import java.util.Map; + +/** + * + * @author SMITH + */ +public class RequireTimeSpentValidatorFactory extends + AbstractWorkflowPluginFactory implements WorkflowPluginValidatorFactory { + /** Creates a new instance of RequireDocumentIssueValidatorFactory */ + public RequireTimeSpentValidatorFactory() { + } + + protected void getVelocityParamsForView(Map map, AbstractDescriptor abstractDescriptor) { + } + + protected void getVelocityParamsForInput(Map map) { + } + + protected void getVelocityParamsForEdit(Map map, AbstractDescriptor abstractDescriptor) { + } + + public Map getDescriptorParams(Map map) { + return map; + } + +} diff -r 56349dc044f5 -r 4ca1ef5be75e ssdt-jira-plugins-v2/plugins/src/main/resources/atlassian-plugin.xml --- a/ssdt-jira-plugins-v2/plugins/src/main/resources/atlassian-plugin.xml Thu May 22 15:45:43 2008 -0400 +++ b/ssdt-jira-plugins-v2/plugins/src/main/resources/atlassian-plugin.xml Fri May 23 18:06:10 2008 -0400 @@ -46,7 +46,16 @@ Require No Time Remaining org.nwoca.ssdt.jira.RequireNoTimeRemainingValidator + location="templates/requirenotimeremaining-validator-view.vm"/> + + + + Require Time Spent + org.nwoca.ssdt.jira.RequireTimeSpentValidator + diff -r 56349dc044f5 -r 4ca1ef5be75e ssdt-jira-plugins-v2/plugins/src/main/resources/templates/requiretimespent-validator-view.vm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ssdt-jira-plugins-v2/plugins/src/main/resources/templates/requiretimespent-validator-view.vm Fri May 23 18:06:10 2008 -0400 @@ -0,0 +1,1 @@ +Require an Time Spent at this step. \ No newline at end of file