Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamically Required Fields: What would you do?

Jon Sword
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 27, 2012

What would you do if you were asked to implement "Dynamically Required Fields" like this?

Note: Class, Module and Proposed Resolution are custom fields. % is a wildcard.

<colgroup><col width="50"> <col width="77"> <col span="2" width="80"> <col width="127"> <col width="131"> <col width="98"> <col width="159"> </colgroup>
PROJECT ISSUE TYPE CLASS MODULE STATUS Proposed Resolution Resolution MANDATORY FIELD
% % % % % % % Category
% % % % % % % Class
% % % % % % % Description
% % % % % % % First Found
% % % % % % % Issue Type
% % % % % % % Module
% % % % % % % PR ID
% % % % % % % Priority
% % % % % % % Project
% % % % % % % Summary
% % % % % % % Urgency
% % % % Closed % % Comments
% % % % Closed % % Escalation Prime
% % % % Closed % % Resolution
% % % % Declined % % Comments
% % % % Declined % % Escalation Prime
% % % % Dependent Fix Required % % Comments
% % % % Dependent Fix Required % % Escalation Prime
% % % % Investigating % % Escalation Prime
% % % % Need Info % % Comments
% % % % Need Info % % Escalation Prime
% % % % Ready to Build % % Comments
% % % % Ready to Build % % Escalation Prime
% % % % Ready to Compile % % Comments
% % % % Ready to Compile % % Escalation Prime
% % % % Ready to Verify % % Comments
% % % % Ready to Verify % % Escalation Prime
% % % % Replied % % Comments
% % % % Replied % % Escalation Prime
% % Software % Unconfirmed % % Component
% % Software % Unconfirmed % % Found in Load
% % Software % Unconfirmed % % Platform Type
% % % % Verification Failed % % Comments
% % % % Verification Failed % % Escalation Prime
% % % % Verification Passed % % Escalation Prime
% % % % Work in Progress % % Comments
% % % % Work in Progress % % Escalation Prime
% % Documentation % % % % Doc Identifier
% % Software % Closed % Fix Provided Sourced in Load
% % Software % Closed % Fix Provided Sourced in Version
% % Software % Closed % Fix Provided Tested in Load
% % Software % Closed % Dependent Fix Provided Tested in Load
% % Software % Closed % Fix Provided Tested in Version
% % Software % Closed % Dependent Fix Provided Tested in Version
% % Software % % % % Fix Version
% % Software % Investigating % % Fix Forecast Date
% % Software % Investigating % % Milestone
% % Software % Ready to Build % % Submitted in Load
% % Software % Ready to Build % % Submitted in Version
% % Software % Ready to Compile % % Submitted in Load
% % Software % Ready to Compile % % Submitted in Version
% % Software % Ready to Verify % % Submitted in Load
% % Software % Ready to Verify % % Submitted in Version
% % Software % Received % % Fix Forecast Date
% % Software % Received % % Milestone
% % Software % Unconfirmed % % Found in Load
% % Software % Verification Failed % % Tested in Load
% % Software % Verification Failed % % Tested in Load
% % Software % Verification Failed % % Tested in Version
% % Software % Verification Passed % % Sourced in Load
% % Software % Verification Passed % % Sourced in Version
% % Software % Verification Passed % % Tested in Load
% % Software % Verification Passed % % Tested in Version
% % Software % Work in Progress % % Milestone
% % Software % % % % Found in Version
% Product Defect Software % Unconfirmed % % Design Phase Detected
% Product Defect % % Closed % Fix Provided Verified Date
% Product Defect % % Closed % Fix Provided Verifier
% % % % Replied % % Proposed Resolution
% Product Defect Firmware % Unconfirmed % % Design Phase Detected
% Product Defect % % Verification Failed % % Verified Date
% Product Defect % % Verification Failed % % Verifier
% Product Defect % % Verification Passed % % Verified Date
% Product Defect % % Verification Passed % % Verifier
% Product Defect % % Work in Progress % % Fix Forecast Date
% Product Defect Documentation % Unconfirmed % % Design Phase Detected
% Product Defect Software % Closed % Fix Provided Activity ID
% Product Defect Software % Closed % Fix Provided Defect Type
% Product Defect Software % Closed % Fix Provided Design Phase Detected
% Product Defect Software % Closed % Fix Provided Design Phase Injected
% Product Defect Software % Closed % Fix Provided Phase Escape Reason
% Product Defect Software % Closed % Fix Provided Version Injected
% Product Defect Software % Replied Not Fixing % Defect Type
% Product Defect Software % Replied Test Deferred % Defect Type
% Product Defect Software % Replied Not Fixing Dependent % Defect Type
% Product Defect Software % Replied Test Deferred % Design Phase Injected
% Product Defect Software % Replied Not Fixing % Phase Escape Reason
% Product Defect Software % Replied Test Deferred % Phase Escape Reason
% Product Defect Software % Replied Not Fixing Dependent % Phase Escape Reason
% Product Defect Software % Replied Not Fixing % Reply Reason
% Product Defect Software % Replied No Defect % Reply Reason
% Product Defect Software % Replied Not Reproducible % Reply Reason
% Product Defect Software % Replied No Defect % Reply Reason
% Product Defect Software % Replied Not Fixing Dependent % Reply Reason
% Product Defect Software % Replied Test Deferred % Version Injected
% Product Defect Software % Unconfirmed % % Found in Load
% Product Defect Firmware % Unconfirmed % % Found in Load
% Product Defect Software % Unconfirmed % % Found in Solution
% Product Defect Firmware % Unconfirmed % % Found in Solution
% Product Defect Documentation % Unconfirmed % % Found in Solution
% Product Defect Software % Unconfirmed % % Frequency
% Product Defect Firmware % Unconfirmed % % Frequency
% Product Defect Software % Verification Failed % % Defect Type
% Product Defect Software % Verification Failed % % Design Phase Detected
% Product Defect Software % Verification Failed % % Design Phase Injected
% Product Defect Software % Verification Failed % % Phase Escape Reason
% Product Defect Software % Verification Failed % % Version Injected
% Product Defect Software % Verification Passed % % Defect Type
% Product Defect Software % Verification Passed % % Design Phase Detected
% Product Defect Software % Verification Passed % % Design Phase Injected
% Product Defect Software % Verification Passed % % Phase Escape Reason
% Product Defect Software % Verification Passed % % Version Injected
% Product Defect Software % Work in Progress % % Defect Type
% Product Defect Software % Work in Progress % % Design Phase Injected
% Product Defect Software % Work in Progress % % Phase Escape Reason
% Product Defect Software % Work in Progress % % Version Injected
% Product Defect Documentation % Closed % Fix Provided Design Phase Injected
% Product Defect Documentation % Replied Test Deferred % Design Phase Injected
% Product Defect Documentation % Verification Failed % % Design Phase Injected
% Product Defect Documentation % Verification Passed % % Design Phase Injected
% Product Defect Documentation % Work in Progress % % Design Phase Injected
% Product Defect Software % Unconfirmed % % Operational Impacts
% % Firmware % Unconfirmed % % Found in Load
% % Firmware % Unconfirmed % % Platform Type
% % Firmware % Closed % Fix Provided Sourced in Load
% % Firmware % Closed % Fix Provided Sourced in Version
% % Firmware % Closed % Fix Provided Tested in Load
% % Firmware % Closed % Dependent Fix Provided Tested in Load
% % Firmware % Closed % Fix Provided Tested in Version
% % Firmware % Closed % Dependent Fix Provided Tested in Version
% % Firmware % Investigating % % Fix Forecast Date
% % Firmware % Investigating % % Milestone
% % Firmware % Ready to Build % % Submitted in Load
% % Firmware % Ready to Build % % Submitted in Version
% % Firmware % Ready to Compile % % Submitted in Load
% % Firmware % Ready to Compile % % Submitted in Version
% % Firmware % Ready to Verify % % Submitted in Load
% % Firmware % Ready to Verify % % Submitted in Version
% % Firmware % Received % % Fix Forecast Date
% % Firmware % Received % % Milestone
% % Firmware % Unconfirmed % % Found in Load
% % Firmware % % % % Fix Version
% % Firmware % Verification Failed % % Tested in Load
% % Firmware % Verification Failed % % Tested in Load
% % Firmware % Verification Failed % % Tested in Version
% % Firmware % Verification Passed % % Sourced in Load
% % Firmware % Verification Passed % % Sourced in Version
% % Firmware % Verification Passed % % Tested in Load
% % Firmware % Verification Passed % % Tested in Version
% % Firmware % Work in Progress % % Milestone
% Product Defect Firmware % Unconfirmed % % Operational Impacts
% Product Defect Firmware % Closed % Fix Provided Activity ID
% Product Defect Firmware % Closed % Fix Provided Defect Type
% Product Defect Firmware % Closed % Fix Provided Design Phase Detected
% Product Defect Firmware % Closed % Fix Provided Design Phase Injected
% Product Defect Firmware % Closed % Fix Provided Phase Escape Reason
% Product Defect Firmware % Closed % Fix Provided Version Injected
% Product Defect Firmware % Replied Not Fixing % Defect Type
% Product Defect Firmware % Replied Test Deferred % Defect Type
% Product Defect Firmware % Replied Not Fixing Dependent % Defect Type
% Product Defect Firmware % Replied Test Deferred % Design Phase Injected
% Product Defect Firmware % Replied Not Fixing % Phase Escape Reason
% Product Defect Firmware % Replied Test Deferred % Phase Escape Reason
% Product Defect Firmware % Replied Not Fixing Dependent % Phase Escape Reason
% Product Defect Firmware % Replied Not Fixing % Reply Reason
% Product Defect Firmware % Replied No Defect % Reply Reason
% Product Defect Firmware % Replied Not Reproducible % Reply Reason
% Product Defect Firmware % Replied No Defect % Reply Reason
% Product Defect Firmware % Replied Not Fixing Dependent % Reply Reason
% Product Defect Firmware % Replied Test Deferred % Version Injected
% Product Defect Software % Unconfirmed % % Test Activity
% Product Defect Firmware % Unconfirmed % % Test Activity
% Product Defect Documentation % Unconfirmed % % Test Activity
% Product Defect Software % Unconfirmed % % Test Method
% Product Defect Firmware % Unconfirmed % % Test Method
% Product Defect Software % Unconfirmed % % Testbed
% Product Defect Firmware % Unconfirmed % % Testbed
% Product Defect Firmware % Verification Failed % % Defect Type
% Product Defect Firmware % Verification Failed % % Design Phase Detected
% Product Defect Firmware % Verification Failed % % Design Phase Injected
% Product Defect Firmware % Verification Failed % % Phase Escape Reason
% Product Defect Firmware % Verification Failed % % Version Injected
% Product Defect Firmware % Verification Passed % % Defect Type
% Product Defect Firmware % Verification Passed % % Design Phase Detected
% Product Defect Firmware % Verification Passed % % Design Phase Injected
% Product Defect Firmware % Verification Passed % % Phase Escape Reason
% Product Defect Firmware % Verification Passed % % Version Injected
% Product Defect Firmware % Work in Progress % % Defect Type
% Product Defect Firmware % Work in Progress % % Design Phase Injected
% Product Defect Firmware % Work in Progress % % Phase Escape Reason
% Product Defect Firmware % Work in Progress % % Version Injected
% % Hardware % % % % Test Activity
% % Hardware % Replied Not Fixing % Escalation Prime
% % Hardware % Replied Not Fixing % Test Activity
% % Hardware % Replied No Defect % Escalation Prime
% % Hardware % Replied No Defect % Test Activity
% % Hardware % Replied Not Reproducible % Escalation Prime
% % Hardware % Replied Not Reproducible % Test Activity
% % Hardware % Closed % Fix Provided Escalation Prime
% % Hardware % Closed % Dependent Fix Provided Escalation Prime
% % Hardware % Closed % Fix Provided Test Activity
% % Hardware % Closed % Dependent Fix Provided Test Activity
% % Hardware % Closed % Fix Provided Version Injected
% % Hardware % Closed % Dependent Fix Provided Version Injected
% % Hardware % Declined % % Escalation Prime
% % Hardware % Declined % % Test Activity
% % Hardware % Closed % Duplicate Escalation Prime
% % Hardware % Closed % Duplicate Test Activity
% % Hardware % Need Info % % Escalation Prime
% % Hardware % Need Info % % Test Activity
% % Hardware % Replied Not Reproducible % Escalation Prime
% % Hardware % Replied Not Reproducible % Test Activity
% % Hardware % Ready to Build % % Escalation Prime
% % Hardware % Ready to Build % % Test Activity
% % Hardware % Ready to Build % % Version Injected
% % Hardware % Ready to Compile % % Escalation Prime
% % Hardware % Ready to Compile % % Test Activity
% % Hardware % Ready to Compile % % Version Injected
% % Hardware % Ready to Verify % % Escalation Prime
% % Hardware % Ready to Verify % % Test Activity
% % Hardware % Ready to Verify % % Version Injected
% % % % Received % % Escalation Prime
% % Hardware % Received % % Test Activity
% % Hardware % Replied Duplicate % Escalation Prime
% % Hardware % Replied Duplicate % Test Activity
% % Hardware % Verification Failed % % Escalation Prime
% % Hardware % Verification Failed % % Test Activity
% % Hardware % Verification Failed % % Version Injected
% % Hardware % Verification Passed % % Escalation Prime
% % Hardware % Verification Passed % % Test Activity
% % Hardware % Verification Passed % % Version Injected
% % Hardware % Work in Progress % % Escalation Prime
% % Hardware % Work in Progress % % Test Activity
% % Hardware % Work in Progress % % Version Injected
% % Other % % % % Platform Type
% % System % % % % Platform Type
% % System % % % % Found in Load
% % Firmware % Unconfirmed % % Component
% % Documentation % Unconfirmed % % Component
% % Other % Unconfirmed % % Component
% Product Defect Documentation % Closed % Fix Provided Design Phase Detected
% Product Defect Documentation % Unconfirmed % % Testbed
% % Documentation % % % % Fix Version
% % Other % % % % Fix Version
% % Firmware % % % % Found in Version
% % Documentation % % % % Found in Version
% % Other % % % % Found in Version

Regards,

Jon

2 answers

1 accepted

2 votes
Answer accepted
JamieA
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 27, 2012

I guess there's more to your question than you're including, as I know you are aware of some of the potential solutions for this.

I agree with Radu, if you have masses of config create a new db table and keep that there. You could then modify the "fields required" validator from JSU to read this table, and if you use the behaviours plugin you can check the box that says "use requiredness from JSU" which will make the fields required before the user presses submit. (As validators don't come into play until the user submits, which is a bit irritating).

2 votes
Radu Dumitriu
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 27, 2012

I would create dynamic validators, of course (directly in Java, or via scripting) placing all the mandatory fields in a database.

We did something similar (actually more complex than that) for one of our customers.

Jon Sword
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
January 30, 2012

Thanks to both Jamie and Radu for your responses. I did it using a JIRA Groovy Scriptrunner validator script. In a panic to get it done I hardcoded the rules in - but in phase II (starting shortly) I will implement the DB to make the data more manageable.

Suggest an answer

Log in or Sign up to answer