Is there any way to hide fields in bulk when editing field configurations?

Rob Horan
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.
December 3, 2015

We have a good number of custom fields.  When I make a new field configuration all of these fields are visible by default, which means, if I were to give someone project admin rights, they would see anything not hidden, and hiding fields from the configuration is a PAINFULLY TEDIOUS practice - scroll to field, click hide, wait for refresh, scroll, etc....

There must be an easier way...

10 answers

3 votes
Luke Machowski January 10, 2018

I have found a simple workaround that works OK given the poor UX around the screen. It effectively lets me quickly scroll down the page of fields and quickly disable fields that you don't want.

  1. Navigate to the Field Configuration you want to modify.
  2. Start scrolling down the list of fields and middle click the "Hide" link for fields you want to hide. This opens up a new window with that link (in Chrome) but has the effect of you clicking the link without the annoying refresh issue.
  3. You can ignore the opened tabs and close them all later once you are done. I use the "Close tabs to the right" feature by right clicking on the tab in Chrome.

 

By the way, the real nuisance and the reason why I need to hide the fields is because it causes a lot of clutter in the Bulk Edit screen. The solutions proposed around updating the Screen configuration don't affect the Bulk Edit screen.

Charles Nahm April 23, 2018

Thanks Luke.  It works a lot better than anything Atlassian has provided...

Paul Stallworth
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 8, 2018

I've used this method as well.  It's surprisingly quick depending upon how many fields you need to update.

Austin Hardy April 13, 2020

Years later and this is still the best method.

Dana Frost June 22, 2020

One helpful tip would be to create a "Hidden Field Config" with all fields (that you can) hidden.  Then, when you want a new config just copy it and show the fields you want.

I have used the middle click hack too. Better than nothing.

Basically, once you have spent the time coming up with a mostly-hidden scheme, just copy that one instead of making a new (all shown) config.

Duncan Sample December 17, 2020

In case you'd like a slightly more automated way of clicking the 'Hide' links, I wrote this bit of JavaScript which you can run in your browser's JavaScript console (inside Developer Tools/Inspect). It does the same thing as listed above, but doesn't bother opening the tabs. It may click on the links too quickly for Jira, so I've found I've had to run it a couple of times to get all the ones on the page hidden.

Once it's finished, make sure you refresh, otherwise you won't see the updated list

let toHide=$("a[id^='hide_']").toArray();
console.log(`Fields to hide: ${toHide.length}`);
toHide.reduce(async (prev, link, i) => {
await prev;
await new Promise(resolve => setTimeout(resolve, 1000));
console.log(`${i+1} - ${link.title}`);
return await fetch(link.href, {redirect: 'manual'});
}, Promise.resolve())
Like Craig Kabealo likes this
2 votes
Kevin Bouman August 9, 2017

Robert,

I have ran into the same problem. When in the issue navigator, my users don't want to see all the CFs in JIRA they only want to see the CFs associated to their project. This is only possible by hiding the CFs in the field configuration associated with that project. 

I created a custom groovy script that can be ran from the ScriptRunner Script Console. You define the the Project Key and the field names that you want to be visable. then run it and it will hide all the CFs in that field configuration except for the ones that you defined to be visable.

I am trying to create a script to auto hide a CF in all field configurations when it is created but that is proving more dificult then I thought. I hope this helps with your problem. 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutManager;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.fields.layout.field.EditableFieldLayout;
import com.atlassian.jira.project.Project

//*** Get Needed Managers ***
FieldManager fieldManager = ComponentAccessor.getFieldManager();
FieldLayoutManager layoutManager = ComponentAccessor.getComponent(FieldLayoutManager)

//*** Initialize Variables ***
String result = "Done";
String projKey = "KEY"; //JIRA project Key
String[] usedFields = [
"CF1", //Custom Field Name
"CF2" //Custom Field Name
] as String[]

//Only look in the specified project
Project nextProject = ComponentAccessor.getProjectManager().getProjectObjByKey(projKey)

//Get all the Unique Field Layouts related to the project
def fLayouts = layoutManager.getUniqueFieldLayouts(nextProject)

//Loop throught the layouts
for (layout in fLayouts){

//Check if the layout name is not Null
if (layout.getName() != null){

//Get the ID of the layout
def layoutId = layout.getId();

//Loop through all the layout items (Custom Fields)
for (cf in layout.getFieldLayoutItems()){

//Check if Custom Field
boolean isCF = fieldManager.isCustomField(cf.getOrderableField().getId());
if (isCF == true){

//*** Lookup Field Layout ***
EditableFieldLayout editableLayout = layoutManager.getEditableFieldLayout(layoutId);

//*** Lookup Custom Field ***
CustomField field = fieldManager.getCustomField(cf.getOrderableField().getId());
FieldLayoutItem item = editableLayout.getFieldLayoutItem(field);

//Set visablilty of field
if usedFields.contains(cf.getOrderableField().getName())){

//If item is hidden make it visible
if(item.isHidden() == true){
//*** Update Field Visability ***
editableLayout.show(item);
layoutManager.storeEditableFieldLayout(editableLayout)

}
}
else {
//*** Update Field Visability ***
editableLayout.hide(item);
layoutManager.storeEditableFieldLayout(editableLayout)
}
}

}
}
}
return result;
Paul Stallworth
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 5, 2018

This is a helpful starting point, thank you!

Like Amit Sinha likes this
Robert Jahrling July 25, 2018
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.fields.FieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutManager;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.fields.layout.field.EditableFieldLayout;
import com.atlassian.jira.project.Project
import org.apache.log4j.Level

log.setLevel(Level.INFO)

//*** Get Needed Managers ***
FieldManager fieldManager = ComponentAccessor.getFieldManager();
FieldLayoutManager layoutManager = ComponentAccessor.getComponent(FieldLayoutManager)

//*** Initialize Variables ***
String result = "Done";
String projKey = "Key"; //JIRA project Key
String[] usedFields = [
"Field 1",
"Field 2"
] as String[]

Project p = ComponentAccessor.getProjectManager().getProjectObjByKey(projKey)

def fieldLayouts = layoutManager.getUniqueFieldLayouts(p)

for (layout in fieldLayouts){
if (layout.getName() != null){
log.info "LAYOUT: ${layout.name}"
def layoutId = layout.getId();

EditableFieldLayout editableLayout = layoutManager.getEditableFieldLayout(layoutId);

for (fieldLayoutItem in layout.getFieldLayoutItems()){

//We won't touch system fields
boolean isCF = fieldManager.isCustomField(fieldLayoutItem.getOrderableField().getId());
if (isCF == true){
CustomField field = fieldManager.getCustomField(fieldLayoutItem.getOrderableField().getId());
FieldLayoutItem item = editableLayout.getFieldLayoutItem(field);

if (usedFields.contains(fieldLayoutItem.getOrderableField().getName())){
if(item.isHidden() == true){
editableLayout.show(item);
}
} else {
editableLayout.hide(item);
}
}
}
layoutManager.storeEditableFieldLayout(editableLayout)
}
}
return result;

 I hope you don't mind, Kevin; I did a little light editing on your code to make it more readable and more efficient. You don't need to save after every update; you can iterate over the fields and hide the unneeded ones and just save it once. In a system with hundreds of fields, your code takes hours to run. In my test environment, which has 800+ custom fields, the original code is heading into hour three of runtime against a field configuration scheme that has six field configurations (meaning that it's saving field configurations over 5000 times). The revised version here completed successfully in under a minute.

Like Amit Sinha likes this
ramesh babu March 28, 2019

Awesome .. I ran the script on script runner script  for 1906 CF

Elapsed: 4483 ms
CPU time: 1055 ms

2 votes
Richard Cross January 19, 2017

Unfortunately, I'm coming to the conclusion that Atlassian believe custom fields are evil, and should be avoided at all costs. 

I come to this conclusion because there is absolutely ZERO SUPPORT OR SYMPATHY FROM ATLASSIAN for users whose systems have either intentionally or accidentally amassed a large collection of custom fields.  JIRA just isn't equipped to deal with it.

 

Rose Sahagun July 19, 2017

Richard I agree -  super tedious and I have spent a good 30mins trying to find informaiton on how to:

  • avoid new fields from automatically showing in a field configuration (it doesnt matter if I associate it to only one project, the field displays on existing AND new field configurations....WHYYYYYYYYYYYYYYYYY
  • even if the custom field is assigned to a project/issue type this is not a option when creating so the field shows in all field configs....also when you do restrict to a project/issue type it still shows for all field configs. 
  • easily (i.e. bulk) remove fields that should not be associated to a field configuration......as others have said 
  • keep field configurations from automatically being generated when you create a project as well as remove field configuration when you delete a project.

Guess Atlassian missed the opportunity to make the system more flexible this way - in order to set up multiple projects and use JIRA across various departments there will be multiple custom fields needed! This makes it a royal pain to administer - I have to go through 300+ fields and deselect those not used in a project...FOR ALL MY PROJECTS...pretty ridiculous. 

Anyone else found anything useful for this? 

Like # people like this
Richard Cross October 15, 2020

Only 300 fields?  Try 3,000.  ;-)

Like # people like this
Luke Machowski October 15, 2020

OK, you definitely win!

I don't know whether to send Kudos or Condolences.

1 vote
Rob Horan
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.
November 21, 2019

One thing I've noticed is that with Jira and the Atlassian community I can look back at my youth (HA) with the wisdom of age (sad HA) because it really does take decades for anything to change in this application.

Back when I wrote this I was not thinking about Field Configurations the right way.  These days I have a different perspective on this, but I would still like to see a change to the way this is handled.  I still have a wish list:

  • Add filters to allow users to narrow down choices
  • Allow users to make multiple changes or
  • Silently save changes
  • Essentially eliminate the page refresh whenever a change is made or at least return users to the same point they were at when they made their change
  • Show only a certain number of fields per page, so in case of a refresh, we don't have to page down for ages just to get back to where we were.
  • Show all fields collapsed, and allow users options to expand as needed with expand/collapse all options.
1 vote
Barry Ozer November 20, 2019

In Jira Cloud, I've set up a Config field 'Template' with all hidden fields and whenever I need to create a new config field, I copy that and show only the fields required for the issue type. Hope this helps.

Barry

1 vote
Jared Dohrman [Design Industries]
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.
December 3, 2015

Hi Robert,

Have you tried copying an existing Field Config? This should reduce the effort involved in hiding fields if another Field Config already has those fields hidden

Rob Horan
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.
December 3, 2015

None of my configuration have them hidden. Until now I have no project admins, so it wasn't an issue. I never looked at that screen.

Like John Price likes this
Rob Horan
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.
December 11, 2015

Unfortunately this is also only a temporary measure, as any time a new field is added to the system it becomes visible.

Like Michael Aglas likes this
0 votes
Abel Lineberger May 28, 2021

If they would only allow Boolean operators in the search field!  Being able to use a NOT "x" where x is the project whose Field Configuration you are editing would make life so much easier.  

Ultimately (and by priority):

  1. Silently save changes without screen refresh
  2. Sort on Headers
  3. Boolean search field (persistent until cleared)
  4. Filters for Shown, Hidden, Required (and be able to have multiple active)

And this needs to happen on the CLOUD instances.  The requests on the JIRA SERVER development boards might as well be dead at this point.

0 votes
Oleksandr Chalyi February 12, 2019

Please vote for new suggestions if it's relevant for you:

Allow more selection options in the JIRA Field Configuration Screen
https://jira.atlassian.com/browse/JRASERVER-68836

Allow only custom fields in project scope to be shown in field config linked to the project
https://jira.atlassian.com/browse/JRASERVER-68837

0 votes
Rodrigo Carvalho de Martinez May 29, 2018

Hi @Rob Horan!

It's probably too late to reply to you, but here's what I got anyway. New admins might still be running into this post (like I did).

I've set up a JMeter thread to workaround it. There are a few issues to deal with (like extracting the atl_token from the response header, setting up the controllers and the counting variable) but it worked like a charm!

This time I made an "Empty Field Configuration" which I'll clone for new projects.

I also use JMeter to reorder Statuses.

 

Cheers

Sambath Chhom June 7, 2018

Hello Rodrigo Carvalho,

so did you find a solution to hide fields in the bulk select?

If so could you be so kind and explain it?

Thanks

Rodrigo November 8, 2018

Hi Sambath!

I used jmeter.

Here's a simplified walkthrough:

1) Create a new Field Configuration called "Empty" or whatever

2) Mouse over the first field's Hide link. See what parameter's on the URL. Here's "&hide=0". Do the same for the last customfield on the page. Here's "&hide=486".

3) Setup a jmeter with this XML file. It's in pt_BR but should work... mind the "REPLACE" comments before importing to Jmeter.

 

----

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.8" jmeter="2.13 r1665067">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Hide Fields in Field Configuration" enabled="true">
<stringProp name="TestPlan.comments"></stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="Variáveis Definidas Pelo Usuário" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="TestPlan.user_define_classpath"></stringProp>
</TestPlan>
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Controlador de Iteração" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<stringProp name="LoopController.loops">1</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">1</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1441750292000</longProp>
<longProp name="ThreadGroup.end_time">1441750292000</longProp>
<boolProp name="ThreadGroup.scheduler">false</boolProp>
<stringProp name="ThreadGroup.duration"></stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
</ThreadGroup>
<hashTree>
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="VARIAVEIS" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="loop_count" elementType="Argument">
<stringProp name="Argument.name">loop_count</stringProp>
<stringProp name="Argument.value">486</stringProp> <!-- REPLACE WITH (MAX ID - MIN ID) -->
<stringProp name="Argument.metadata">=</stringProp>
<stringProp name="Argument.desc">Número de vezes pra subir ou descer o status</stringProp>
</elementProp>
</collectionProp>
</Arguments>
<hashTree/>
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="Cookie" enabled="true">
<collectionProp name="CookieManager.cookies"/>
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
<stringProp name="CookieManager.implementation">org.apache.jmeter.protocol.http.control.HC4CookieHandler</stringProp>
</CookieManager>
<hashTree/>
<AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="Auth" enabled="true">
<collectionProp name="AuthManager.auth_list"/>
</AuthManager>
<hashTree/>
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="Gerenciador de Cabeçalhos HTTP" enabled="true">
<collectionProp name="HeaderManager.headers"/>
</HeaderManager>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain">jira.yourdomain.com</stringProp> <!-- REPLACE WITH YOUT JIRA INSTANCE -->
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
<stringProp name="HTTPSampler.response_timeout">60000</stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path"></stringProp>
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
<stringProp name="HTTPSampler.concurrentPool">4</stringProp>
</ConfigTestElement>
<hashTree/>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Variáveis Definidas Pelo Usuário" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="os_username" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">XXX</stringProp> <!-- REPLACE WITH ADMIN USERNAME -->
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">os_username</stringProp>
</elementProp>
<elementProp name="os_password" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">XXX</stringProp> <!-- REPLACE WITH ADMIN PASSWORD -->
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">os_password</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/rest/gadget/1.0/login</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Faz login com um usuário admin no Jira</stringProp>
</HTTPSamplerProxy>
<hashTree>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extractor de Expressão Regular" enabled="true">
<stringProp name="RegexExtractor.useHeaders">true</stringProp>
<stringProp name="RegexExtractor.refname">atl_token</stringProp>
<stringProp name="RegexExtractor.regex">atlassian\.xsrf\.token=(.*)?;</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default"></stringProp>
<stringProp name="RegexExtractor.match_number">1</stringProp>
</RegexExtractor>
<hashTree/>
</hashTree>
<LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Repetição" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
<stringProp name="LoopController.loops">${loop_count}</stringProp>
<stringProp name="TestPlan.comments">Repete a chamada da URL &quot;loop_count&quot; vezes</stringProp>
</LoopController>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Hide fields" enabled="true">
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Variáveis Definidas Pelo Usuário" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="atl_token" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">true</boolProp>
<stringProp name="Argument.value">${atl_token}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">atl_token</stringProp>
</elementProp>
<elementProp name="id" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">13000</stringProp> <!-- REPLACE WITH FIELD CONFIGURATION ID -->
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">id</stringProp>
</elementProp>
<elementProp name="hide" elementType="HTTPArgument">
<boolProp name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.value">${hide}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
<stringProp name="Argument.name">hide</stringProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.connect_timeout"></stringProp>
<stringProp name="HTTPSampler.response_timeout"></stringProp>
<stringProp name="HTTPSampler.protocol"></stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.path">/secure/admin/EditFieldLayoutHide.jspa</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">false</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp>
<boolProp name="HTTPSampler.monitor">false</boolProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
<stringProp name="TestPlan.comments">Chama a URL parametrizada pra mover a ordem de um Status pra cima ou pra baixo</stringProp>
</HTTPSamplerProxy>
<hashTree/>
<CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Contador Hide" enabled="true">
<stringProp name="CounterConfig.start">0</stringProp> <!-- REPLACE WITH FIRST FIELD "HIDE" PARAM -->
<stringProp name="CounterConfig.end">486</stringProp> <!-- REPLACE WITH LAST FIELD "HIDE" PARAM -->
<stringProp name="CounterConfig.incr">1</stringProp>
<stringProp name="CounterConfig.name">hide</stringProp>
<stringProp name="CounterConfig.format"></stringProp>
<boolProp name="CounterConfig.per_user">false</boolProp>
</CounterConfig>
<hashTree/>
</hashTree>
</hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
<time>true</time>
<latency>true</latency>
<timestamp>true</timestamp>
<success>true</success>
<label>true</label>
<code>true</code>
<message>true</message>
<threadName>true</threadName>
<dataType>true</dataType>
<encoding>false</encoding>
<assertions>true</assertions>
<subresults>true</subresults>
<responseData>false</responseData>
<samplerData>false</samplerData>
<xml>false</xml>
<fieldNames>false</fieldNames>
<responseHeaders>false</responseHeaders>
<requestHeaders>false</requestHeaders>
<responseDataOnError>false</responseDataOnError>
<saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
<assertionsResultsToSave>0</assertionsResultsToSave>
<bytes>true</bytes>
<threadCounts>true</threadCounts>
</value>
</objProp>
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
</hashTree>
</hashTree>
</jmeterTestPlan>
0 votes
Jobin Kuruvilla [Adaptavist]
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.
December 3, 2015

I think the key is in using the screen schemes correctly. Make sure you have appropriate screens created for your projects and add only required fields on those screens.

When a new custom field is added, it will appear in a project only if you add the field into the screens used by that project.

Rob Horan
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.
December 3, 2015

It doesn't matter how the screens are configured, every bloody field in the system still appears unless explicitly hidden.

Rob Horan
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.
December 4, 2015

OK, for example, I created a project for one team that has something like 20 custom fields that were configured for use ONLY with that project. When I go to the project summary for other projects and look at the field configs, those fields still show. Why can't Jira only show the fields applicable to the project?

Jobin Kuruvilla [Adaptavist]
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.
December 4, 2015

Fields show in the field config but they won't appear when you create/edit an issue. If the fields are not on the screen and the fields are not associated with the project, they won't appear even if it is there in the field config screen. In your case, the 20 custom fields are configured for one project and they won't appear in the other projects even if they are using a field config scheme that has it.

Rob Horan
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.
December 9, 2015

The problem here is I want to give Project Admin rights to people, but don't want them snooping. Unfortunately Atlassian allows project admins to see FAR too much.

Rob Horan
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.
December 11, 2015

I don't want to expose EVERYTHING. There are going to be times when I need to give someone Project Admin access so they can create their own components, but I don't want them seeing certain things.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events