Conditional field validation / input?

Hi all. I’ve been an RT user for a short while now and I’m continuing
to dig deeper as we extend its use. Thanks to Jesse and team for a
product which delivers significant flexibility while preserving
simplicity of use.

Here’s my current question: Is there an easy way to add logic such that
certain custom fields are required or made available for use only when
specific values are set on a particular field? That’s a fairly generic
question so I’ll attempt to illustrate a bit with a scenario or two:

  1. As part of an internal business process, we frequently need to work
    with carriers to effect changes to our telephony platform. I’ve modeled
    this through several custom fields, but the challenge is that not all
    information is available when the process is initiated. Thus, only
    certain custom fields can be populated when a ticket is created.
    However, I do want to apply input validation on these values and I’d
    like to require values at the approprate stage. (The ‘stages’ are
    modeled through a custom field drop-down.) If I set validation patterns
    for the custom fields, they all become required when creating a ticket
    through the web interface. I’m wondering if there is a way to require
    data only when the relevant stage is selected. Does this make sense?

  2. I’d like to expose certain inputs in response to selections made in
    other custom fields. As an example, consider a support process covering
    10-15 different products, each with its own set of data required for
    support purposes. Package A might require a serial number and a version
    whereas Package B might require a processor speed and a power
    consumption value. One solution is to expose all inputs at all times
    but I’d like to simplify the interface presented to support staff if at
    all possible. This would ideally happen by exposing only those custom
    fields related to a top-level product selection.

Another possibility might be to use a separate Queue for each product, I
suppose, but I don’t think this scales particularly well; imagine a
scenario in which there are a large number of products (and therefore
Queues). There are many examples of “conditional dropdowns” in HTML. I
just wasn’t sure if there was something similar in RT.

Thanks in advance for any guidance.

Regards,

Damon

Hi Damon,

We have been using RT for a while and I think that you can
setup Scrips to do your stage validation at each step along
the way and prevent the ticket from moving to the next stage.

As far as the drop-down type input or input options revealed
when a selection is made, that sounds like it may need AJAX/
Javascript type coding. Maybe you could model it on something
like the E-mail autocompletion setup in the Wiki.

Cheers,
KenOn Thu, Mar 12, 2009 at 12:55:53PM -0700, Damon Miller wrote:

Hi all. I’ve been an RT user for a short while now and I’m continuing
to dig deeper as we extend its use. Thanks to Jesse and team for a
product which delivers significant flexibility while preserving
simplicity of use.

Here’s my current question: Is there an easy way to add logic such that
certain custom fields are required or made available for use only when
specific values are set on a particular field? That’s a fairly generic
question so I’ll attempt to illustrate a bit with a scenario or two:

  1. As part of an internal business process, we frequently need to work
    with carriers to effect changes to our telephony platform. I’ve modeled
    this through several custom fields, but the challenge is that not all
    information is available when the process is initiated. Thus, only
    certain custom fields can be populated when a ticket is created.
    However, I do want to apply input validation on these values and I’d
    like to require values at the approprate stage. (The ‘stages’ are
    modeled through a custom field drop-down.) If I set validation patterns
    for the custom fields, they all become required when creating a ticket
    through the web interface. I’m wondering if there is a way to require
    data only when the relevant stage is selected. Does this make sense?

  2. I’d like to expose certain inputs in response to selections made in
    other custom fields. As an example, consider a support process covering
    10-15 different products, each with its own set of data required for
    support purposes. Package A might require a serial number and a version
    whereas Package B might require a processor speed and a power
    consumption value. One solution is to expose all inputs at all times
    but I’d like to simplify the interface presented to support staff if at
    all possible. This would ideally happen by exposing only those custom
    fields related to a top-level product selection.

Another possibility might be to use a separate Queue for each product, I
suppose, but I don’t think this scales particularly well; imagine a
scenario in which there are a large number of products (and therefore
Queues). There are many examples of “conditional dropdowns” in HTML. I
just wasn’t sure if there was something similar in RT.

Thanks in advance for any guidance.

Regards,

Damon


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

Damon & Kenneth,

I copied /share/html/Elements/EditCustomField into 

/local/html/Elements/EditCustomField and made these changes after line
76 (rt 3.6.4):

if ($Type eq “Text”) {
$Rows = 8;
$Cols = 50;
} elsif ($Type eq “Wikitext”) {
$Rows = 8;
$Cols = 50;
} elsif ($Type eq “Select” and $MaxValues == 1) {
$Rows = 1;
$Cols = 30;
}

This opened up my "text" custom Fields and made all my "Select" Custom 

Fields have a drop-down box. Hope this helps.

Kenn
LBNLOn 3/12/2009 1:02 PM, Kenneth Marshall wrote:

Hi Damon,

We have been using RT for a while and I think that you can
setup Scrips to do your stage validation at each step along
the way and prevent the ticket from moving to the next stage.

As far as the drop-down type input or input options revealed
when a selection is made, that sounds like it may need AJAX/
Javascript type coding. Maybe you could model it on something
like the E-mail autocompletion setup in the Wiki.

Cheers,
Ken

On Thu, Mar 12, 2009 at 12:55:53PM -0700, Damon Miller wrote:

Hi all. I’ve been an RT user for a short while now and I’m continuing
to dig deeper as we extend its use. Thanks to Jesse and team for a
product which delivers significant flexibility while preserving
simplicity of use.

Here’s my current question: Is there an easy way to add logic such that
certain custom fields are required or made available for use only when
specific values are set on a particular field? That’s a fairly generic
question so I’ll attempt to illustrate a bit with a scenario or two:

  1. As part of an internal business process, we frequently need to work
    with carriers to effect changes to our telephony platform. I’ve modeled
    this through several custom fields, but the challenge is that not all
    information is available when the process is initiated. Thus, only
    certain custom fields can be populated when a ticket is created.
    However, I do want to apply input validation on these values and I’d
    like to require values at the approprate stage. (The ‘stages’ are
    modeled through a custom field drop-down.) If I set validation patterns
    for the custom fields, they all become required when creating a ticket
    through the web interface. I’m wondering if there is a way to require
    data only when the relevant stage is selected. Does this make sense?

  2. I’d like to expose certain inputs in response to selections made in
    other custom fields. As an example, consider a support process covering
    10-15 different products, each with its own set of data required for
    support purposes. Package A might require a serial number and a version
    whereas Package B might require a processor speed and a power
    consumption value. One solution is to expose all inputs at all times
    but I’d like to simplify the interface presented to support staff if at
    all possible. This would ideally happen by exposing only those custom
    fields related to a top-level product selection.

Another possibility might be to use a separate Queue for each product, I
suppose, but I don’t think this scales particularly well; imagine a
scenario in which there are a large number of products (and therefore
Queues). There are many examples of “conditional dropdowns” in HTML. I
just wasn’t sure if there was something similar in RT.

Thanks in advance for any guidance.

Regards,

Damon


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com


http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com