agirstatool/src/org/april/agirstatool/core/pages/UnassignedIssueChartView.java

143 lines
4.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (C) 2020 Christian Pierre MOMON <christian.momon@devinsy.fr>
*
* This file is part of AgirStatool, simple key value database.
*
* AgirStatool is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* AgirStatool is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with AgirStatool. If not, see <http://www.gnu.org/licenses/>.
*/
package org.april.agirstatool.core.pages;
import java.io.IOException;
import org.apache.commons.codec.digest.DigestUtils;
import org.april.agirstatool.core.AgirStatool;
import org.april.agirstatool.core.AgirStatoolException;
import org.april.agirstatool.core.AgirStatoolUtils;
import org.april.agirstatool.core.IssueStats;
import org.april.agirstatool.core.Project;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import fr.devinsy.strings.StringList;
import fr.devinsy.xidyn.utils.XidynUtils;
/**
* The Class projectsRawPageBuilder.
*/
public class UnassignedIssueChartView
{
private static Logger logger = LoggerFactory.getLogger(UnassignedIssueChartView.class);
/**
* Builds the grouped.
*
* @param title
* the title
* @param project
* the project
* @return the string
* @throws AgirStatoolException
* the agir statool exception
*/
public static String buildGrouped(final String title, final Project project) throws AgirStatoolException
{
String result;
StringList labels = new StringList("Started", "Resolved", "Concluded");
StringList values = new StringList();
IssueStats stats = project.issueStats();
values.append(stats.getUnassignedStartedCount());
values.append(stats.getUnassignedResolvedCount());
values.append(stats.getUnassignedConcludedCount());
String targetTitle = title + " " + project.getName();
result = build(targetTitle, targetTitle, labels, values);
//
return result;
}
/**
* Builds the.
*
* @param title
* the title
* @param project
* the project
* @return the string
* @throws AgirStatoolException
* the agir statool exception
*/
public static String build(final String title, final Project project) throws AgirStatoolException
{
String result;
StringList labels = new StringList("Confirmed", "Ongoing", "Waiting", "Resolved", "Rejected", "Closed");
StringList values = new StringList();
IssueStats stats = project.issueStats();
values.append(stats.getUnassignedConfirmedCount());
values.append(stats.getUnassignedOngoingCount());
values.append(stats.getUnassignedWaitingCount());
values.append(stats.getUnassignedResolvedCount());
values.append(stats.getUnassignedRejectedCount());
values.append(stats.getUnassignedClosedCount());
String targetTitle = title + " " + project.getName();
result = build(targetTitle, targetTitle, labels, values);
//
return result;
}
/**
* Builds the.
*
* @param title
* the title
* @param labelTitle
* the label title
* @param labels
* the labels
* @param values
* the values
* @return the string
* @throws AgirStatoolException
* the agir statool exception
*/
public static String build(final String title, final String labelTitle, final StringList labels, final StringList values) throws AgirStatoolException
{
String result;
try
{
String source = XidynUtils.load(AgirStatool.class.getResource("/org/april/agirstatool/core/pages/unassignedIssueChart.xhtml"));
String code = XidynUtils.extractBodyContent(source);
code = code.replaceAll("myChart", "myChart_" + DigestUtils.md5Hex(title + "chartPolar"));
code = code.replace("# of Votes", labelTitle);
code = code.replaceAll("labels: \\[.*\\]", "labels: " + AgirStatoolUtils.toJSonStrings(labels));
code = code.replaceAll("data: \\[.*\\]", "data: " + AgirStatoolUtils.toJSonNumbers(values));
result = code.toString();
}
catch (IOException exception)
{
throw new AgirStatoolException("Error building ProjectsRaw view: " + exception.getMessage(), exception);
}
//
return result;
}
}