Forums

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

Setting the behavior code made the custom field act different way.

Marija Ušakova
April 6, 2018

Dear @Alexey Matveev

How to stop this from happening as i saved code, when clicking on the customfield the behavior changed it goes on to the pop-up upon click it on the view screen, and I'm confused as I cant edit on the view screen itself as we always do, is there a way to stop it.

 

 

2 answers

2 accepted

Suggest an answer

Log in or Sign up to answer
1 vote
Answer accepted
PD Sheehan
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 Champions.
December 8, 2020

I get my day durations like this when I want whole days.

def durationMillis = new Date().time - issue.created.time
def days= Math.round(durationMillis / 1000 / 60 / 60/ 24)

You could also use Math.floor() if you want a day to be counted only after a full 24 hours has passed. Math.round does a simple arithmetic rounding to the nearest integer.

Beverly Braham-Durica
Contributor
December 8, 2020

Thank you! I'll check that out too - I really appreciate this :)

Beverly Braham-Durica
Contributor
December 8, 2020

@PD Sheehan how does this go into the script? Again, I'm very novice at this and I'm not sure how to insert this

PD Sheehan
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 Champions.
December 8, 2020

Scripts can be super simple or super complicated. If you don't care that this number will grow forever you can put this is the script exactly as is.

Here is an example:

2020-12-08 14_41_48-Script Fields.png 

But you may want to consider stopping the clock when an issue is closed.

In which case you'll have to introduce some more complex logic.

 

Something like:

def enDate = issue?.resolutionDate ?: new Date()
def durationMillis = endDate.time-issue.created.time
def days= Math.round(durationMillis / 1000 / 60 / 60/ 24)

Something to note about a field like this ... the index (if you select a searcher in the custom field configuration) will only be updated when an issue is otherwise updated.

So don't expect to be able to use this field in filters and have current results.

Like Beverly Braham-Durica likes this
Beverly Braham-Durica
Contributor
December 8, 2020

I'm still getting an error when I use the first method - any suggestions would be great

2020-12-08_15-55-43.jpg

PD Sheehan
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 Champions.
December 8, 2020

This is an inconsequential warning. You can safely ignore it. 

If it really bothers you, you can force the data type of your calculation with something like this:

def days= Math.round((durationMillis / 1000 / 60 / 60/ 24) as Double)
Like Beverly Braham-Durica likes this
Beverly Braham-Durica
Contributor
December 8, 2020

Thanks for all of your help @PD Sheehan  - it works great.

0 votes
Answer accepted
Nic Brough -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 Champions.
December 8, 2020

getDurationString translates seconds into a formatted string that breaks down the duration into the largest common divisors.

You should be using one of the other functions, I think.   See https://docs.atlassian.com/DAC/javadoc/atlassian-core/4.6.0/reference/com/atlassian/core/util/DateUtils.html for the various options

Beverly Braham-Durica
Contributor
December 8, 2020

Thank you - I'll read through these and see which one would be the best.

TAGS
AUG Leaders

Atlassian Community Events