Refactored label for time way.

This commit is contained in:
Christian P. MOMON 2020-03-06 14:08:46 +01:00
parent 0300e19c82
commit d5d189a0be
7 changed files with 122 additions and 52 deletions

View File

@ -22,6 +22,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Iterator;
import java.util.Locale;
import org.apache.commons.lang3.StringUtils;
@ -113,7 +114,7 @@ public class AgirStatoolUtils
LocalDate date = AgirStatoolUtils.normaliseWeekDate(start);
while (date.isBefore(normalizedEnd) || date.isEqual(normalizedEnd))
{
String label = date.format(DateTimeFormatter.ofPattern("yyyy-MMM", Locale.FRANCE));
String label = date.format(DateTimeFormatter.ISO_DATE);
result.add(label);
date = date.plusWeeks(1);
}
@ -530,6 +531,38 @@ public class AgirStatoolUtils
return result;
}
/**
* To J son numbers.
*
* @param labels
* the labels
* @param values
* the source
* @return the string
*/
public static String toJSonNumbers(final StringList labels, final StringList values)
{
String result;
Iterator<String> labelIterator = labels.iterator();
Iterator<String> valueIterator = values.iterator();
StringList buffer = new StringList();
while (labelIterator.hasNext())
{
String label = labelIterator.next();
String value = valueIterator.next();
// buffer.append("{t: new Date('" + label + "'), y: " + value +
// "}");
buffer.append("{t: '" + label + "', y: " + value + "}");
}
result = StringsUtils.toString(buffer, "[", ",", "]");
//
return result;
}
/**
* To Json strings.
*

View File

@ -69,15 +69,14 @@ public class CreatedClosedCountChartView
code = code.replaceAll("myChart", "myChart_" + DigestUtils.md5Hex(title + "lineChart"));
StringList labels = AgirStatoolUtils.buildWeekLabels(start, end);
code = code.replaceAll("labels: \\[.*\\]", "labels: " + AgirStatoolUtils.toJSonStrings(labels));
DateCountList dates = project.issueStats().getWeekCreatedIssueCounts();
StringList values = AgirStatoolUtils.normalizedWeekCountList(dates, start, end).toValueList();
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
dates = project.issueStats().getWeekConcludedIssueCounts();
values = AgirStatoolUtils.normalizedWeekCountList(dates, start, end).toValueList();
code = code.replaceAll("data: \\[.*\\] ", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data: \\[.*\\] ", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
result = code.toString();
}
@ -122,13 +121,12 @@ public class CreatedClosedCountChartView
code = code.replaceAll("myChart", "myChart_" + DigestUtils.md5Hex(title + "lineBar"));
StringList labels = AgirStatoolUtils.buildWeekLabels(project.issueStats().getFirstCreate().toLocalDate());
code = code.replaceAll("labels: \\[.*\\]", "labels: " + AgirStatoolUtils.toJSonStrings(labels));
StringList values = project.issueStats().getWeekCreatedIssueCounts().toValueList();
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
values = project.issueStats().getWeekConcludedIssueCounts().toValueList();
code = code.replaceAll("data: \\[.*\\] ", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data: \\[.*\\] ", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
result = code.toString();
}

View File

@ -69,9 +69,6 @@ public class CreatedClosedDiffChartView
code = code.replaceAll("myChart", "myChart_" + DigestUtils.md5Hex(title + "line2Chart"));
StringList labels = AgirStatoolUtils.buildWeekLabels(start, end);
code = code.replaceAll("labels: \\[.*\\]", "labels: " + AgirStatoolUtils.toJSonStrings(labels));
DateCountList createdDates = project.issueStats().getWeekCreatedIssueCounts();
DateCountList closedDates = project.issueStats().getWeekConcludedIssueCounts();
DateCountList dates = new DateCountList(createdDates.size());
@ -82,8 +79,9 @@ public class CreatedClosedDiffChartView
dates.add(new DateCount(createdDate.getDate(), createdDate.getCount() - closedDate.getCount()));
}
StringList labels = AgirStatoolUtils.buildWeekLabels(start, end);
StringList values = AgirStatoolUtils.normalizedWeekCountList(dates, start, end).toValueList();
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
result = code.toString();
}

View File

@ -68,16 +68,15 @@ public class IssueAgeChartView
code = code.replaceAll("myChart", "myChart_" + DigestUtils.md5Hex(title + "ageStatsChart"));
StringList labels = AgirStatoolUtils.buildWeekLabels(start, end);
code = code.replaceAll("labels: \\[.*\\]", "labels: " + AgirStatoolUtils.toJSonStrings(labels));
StringList values = AgirStatoolUtils.buildWeekMinAges(project, start, end);
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
values = AgirStatoolUtils.buildWeekMeanAges(project, start, end);
code = code.replaceAll("data : \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data : \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
values = AgirStatoolUtils.buildWeekMaxAges(project, start, end);
code = code.replaceAll("data : \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(values));
code = code.replaceAll("data : \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(labels, values));
result = code.toString();
}

View File

@ -20,29 +20,28 @@ var myChart = new Chart(ctx,
type: 'line',
data:
{
labels: ['S01', 'S02', 'S03', 'S04', 'S05'],
datasets:
[
{
label: 'Created',
data: [2, 9, 13, 15, 22, 23],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1,
fill: true,
/* cubicInterpolationMode: 'monotone', */
lineTension: 0,
pointBorderWidth: 0.00000001
pointBorderWidth: 0.00000001,
data: [2, 9, 13, 15, 22, 23]
},
{
label: 'Closedᴿ',
data: [1, 5, 9, 13, 15, 22] ,
backgroundColor: 'rgba(75, 192, 192, 0.2)',
borderColor: 'rgba(75, 192, 192, 1)',
borderWidth: 1,
fill: true,
lineTension: 0,
pointBorderWidth: 0.00000001
pointBorderWidth: 0.00000001,
data: [1, 5, 9, 13, 15, 22]
}
]
},
@ -57,23 +56,36 @@ var myChart = new Chart(ctx,
{
xAxes:
[{
ticks:
type: 'time',
time:
{
unit: 'month',
isoWeekday: true,
displayFormats:
{
beginAtZero: false
},
gridLines:
{
offsetGridLines: false
month: 'YYYY MMM'
}
},
distribution: 'linear',
ticks:
{
beginAtZero: false,
maxTicksLimit: 0
},
gridLines:
{
zeroLineColor: 'rgba(0, 0, 0, 0.1)',
offsetGridLines: false
}
}],
yAxes:
[{
ticks:
{
beginAtZero: false,
suggestedMax: 10,
precision: 0
}
ticks:
{
beginAtZero: false,
suggestedMax: 10,
precision: 0
}
}]
}
}

View File

@ -20,19 +20,18 @@ var myChart = new Chart(ctx,
type: 'line',
data:
{
labels: ['S01', 'S02', 'S03', 'S04', 'S05'],
datasets:
[
{
label: 'Active Issues',
data: [2, 9, 13, 15, 22, 23],
backgroundColor: 'rgba(255, 159, 64, 0.2)',
borderColor: 'rgba(255, 159, 64, 1)',
borderWidth: 1,
fill: true,
/* cubicInterpolationMode: 'monotone', */
lineTension: 0,
pointBorderWidth: 0.00000001
pointBorderWidth: 0.00000001,
data: [2, 9, 13, 15, 22, 23]
},
]
},
@ -47,19 +46,34 @@ var myChart = new Chart(ctx,
{
xAxes:
[{
ticks:
type: 'time',
time:
{
unit: 'month',
isoWeekday: true,
displayFormats:
{
beginAtZero: false
month: 'YYYY MMM'
}
},
distribution: 'linear',
ticks:
{
},
gridLines:
{
zeroLineColor: 'rgba(0, 0, 0, 0.1)',
offsetGridLines: false
}
}],
yAxes:
[{
ticks:
{
beginAtZero: false,
suggestedMax: 10,
precision: 0
}
ticks:
{
beginAtZero: false,
suggestedMax: 10,
precision: 0
}
}]
}
}

View File

@ -20,41 +20,40 @@ var myChart = new Chart(ctx,
type: 'line',
data:
{
labels: ['S01', 'S02', 'S03', 'S04', 'S05'],
datasets:
[
{
label: 'min',
data: [2, 9, 13, 15, 22, 23],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1,
fill: +1,
cubicInterpolationMode: 'monotone',
lineTension: 0,
pointBorderWidth: 0.00000001
pointBorderWidth: 0.00000001,
data: [2, 9, 13, 15, 22, 23],
},
{
label: 'mean',
data : [1, 5, 9, 13, 15, 22],
backgroundColor: 'rgba(75, 192, 192, 0.2)',
borderColor: 'rgba(75, 192, 192, 1)',
borderWidth: 1,
fill: +2,
cubicInterpolationMode: 'monotone',
lineTension: 0,
pointBorderWidth: 0.00000001
pointBorderWidth: 0.00000001,
data : [1, 5, 9, 13, 15, 22],
},
{
label: 'max',
data : [1, 5, 9, 13, 15, 22],
backgroundColor: 'rgba(153, 102, 255, 0.2)',
borderColor: 'rgba(153, 102, 255, 1)',
borderWidth: 1,
fill: false,
cubicInterpolationMode: 'monotone',
lineTension: 0,
pointBorderWidth: 0.00000001
pointBorderWidth: 0.00000001,
data : [1, 5, 9, 13, 15, 22],
}
]
},
@ -69,10 +68,27 @@ var myChart = new Chart(ctx,
{
xAxes:
[{
ticks:
type: 'time',
time:
{
unit: 'month',
isoWeekday: true,
displayFormats:
{
beginAtZero: false
month: 'YYYY MMM'
}
},
distribution: 'linear',
ticks:
{
beginAtZero: false,
maxTicksLimit: 0
},
gridLines:
{
zeroLineColor: 'rgba(0, 0, 0, 0.1)',
offsetGridLines: false
}
}],
yAxes:
[{