fedi-feed-router/backend/coverage-report/Models/dashboard.html

327 lines
19 KiB
HTML
Raw Normal View History

2025-08-03 20:59:09 +02:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dashboard for /var/www/html/backend/app/Models</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="../_css/bootstrap.min.css?v=11.0.10" rel="stylesheet" type="text/css">
<link href="../_css/nv.d3.min.css?v=11.0.10" rel="stylesheet" type="text/css">
<link href="../_css/style.css?v=11.0.10" rel="stylesheet" type="text/css">
<link href="../_css/custom.css" rel="stylesheet" type="text/css">
</head>
<body>
<header>
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="../index.html">/var/www/html/backend/app</a></li>
<li class="breadcrumb-item"><a href="index.html">Models</a></li>
<li class="breadcrumb-item active">(Dashboard)</li>
</ol>
</nav>
</div>
</div>
</div>
</header>
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<h2>Classes</h2>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Coverage Distribution</h3>
<div id="classCoverageDistribution" style="height: 300px;">
<svg></svg>
</div>
</div>
<div class="col-md-6">
<h3>Complexity</h3>
<div id="classComplexity" style="height: 300px;">
<svg></svg>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Insufficient Coverage</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Class</th>
<th class="text-right">Coverage</th>
</tr>
</thead>
<tbody>
<tr><td><a href="Keyword.php.html#20">App\Models\Keyword</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformAccount.php.html#32">App\Models\PlatformAccount</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#22">App\Models\PlatformChannel</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannelPost.php.html#12">App\Models\PlatformChannelPost</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformInstance.php.html#21">App\Models\PlatformInstance</a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Feed.php.html#30">App\Models\Feed</a></td><td class="text-right">8%</td></tr>
<tr><td><a href="Route.php.html#21">App\Models\Route</a></td><td class="text-right">50%</td></tr>
<tr><td><a href="Language.php.html#11">App\Models\Language</a></td><td class="text-right">60%</td></tr>
</tbody>
</table>
</div>
</div>
<div class="col-md-6">
<h3>Project Risks</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Class</th>
<th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
</tr>
</thead>
<tbody>
<tr><td><a href="Feed.php.html#30">App\Models\Feed</a></td><td class="text-right">143</td></tr>
<tr><td><a href="PlatformAccount.php.html#32">App\Models\PlatformAccount</a></td><td class="text-right">110</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h2>Methods</h2>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Coverage Distribution</h3>
<div id="methodCoverageDistribution" style="height: 300px;">
<svg></svg>
</div>
</div>
<div class="col-md-6">
<h3>Complexity</h3>
<div id="methodComplexity" style="height: 300px;">
<svg></svg>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h3>Insufficient Coverage</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Method</th>
<th class="text-right">Coverage</th>
</tr>
</thead>
<tbody>
<tr><td><a href="Feed.php.html#54"><abbr title="App\Models\Feed::getTypeDisplayAttribute">getTypeDisplayAttribute</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Feed.php.html#63"><abbr title="App\Models\Feed::getStatusAttribute">getStatusAttribute</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Feed.php.html#87"><abbr title="App\Models\Feed::channels">channels</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Feed.php.html#98"><abbr title="App\Models\Feed::activeChannels">activeChannels</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Keyword.php.html#36"><abbr title="App\Models\Keyword::feed">feed</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Keyword.php.html#44"><abbr title="App\Models\Keyword::platformChannel">platformChannel</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Language.php.html#40"><abbr title="App\Models\Language::platformChannels">platformChannels</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Language.php.html#48"><abbr title="App\Models\Language::feeds">feeds</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformAccount.php.html#60"><abbr title="App\Models\PlatformAccount::password">password</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformAccount.php.html#72"><abbr title="App\Models\PlatformAccount::apiToken">apiToken</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformAccount.php.html#84"><abbr title="App\Models\PlatformAccount::getActive">getActive</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformAccount.php.html#92"><abbr title="App\Models\PlatformAccount::setAsActive">setAsActive</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformAccount.php.html#106"><abbr title="App\Models\PlatformAccount::channels">channels</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformAccount.php.html#116"><abbr title="App\Models\PlatformAccount::activeChannels">activeChannels</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#46"><abbr title="App\Models\PlatformChannel::platformInstance">platformInstance</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#54"><abbr title="App\Models\PlatformChannel::platformAccounts">platformAccounts</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#64"><abbr title="App\Models\PlatformChannel::activePlatformAccounts">activePlatformAccounts</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#69"><abbr title="App\Models\PlatformChannel::getFullNameAttribute">getFullNameAttribute</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#78"><abbr title="App\Models\PlatformChannel::feeds">feeds</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#89"><abbr title="App\Models\PlatformChannel::activeFeeds">activeFeeds</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannel.php.html#99"><abbr title="App\Models\PlatformChannel::language">language</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannelPost.php.html#27"><abbr title="App\Models\PlatformChannelPost::casts">casts</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannelPost.php.html#35"><abbr title="App\Models\PlatformChannelPost::urlExists">urlExists</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformChannelPost.php.html#43"><abbr title="App\Models\PlatformChannelPost::storePost">storePost</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformInstance.php.html#42"><abbr title="App\Models\PlatformInstance::channels">channels</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformInstance.php.html#50"><abbr title="App\Models\PlatformInstance::languages">languages</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="PlatformInstance.php.html#57"><abbr title="App\Models\PlatformInstance::findByUrl">findByUrl</abbr></a></td><td class="text-right">0%</td></tr>
<tr><td><a href="Route.php.html#62"><abbr title="App\Models\Route::keywords">keywords</abbr></a></td><td class="text-right">0%</td></tr>
</tbody>
</table>
</div>
</div>
<div class="col-md-6">
<h3>Project Risks</h3>
<div class="scrollbox">
<table class="table">
<thead>
<tr>
<th>Method</th>
<th class="text-right"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></th>
</tr>
</thead>
<tbody>
<tr><td><a href="Feed.php.html#63"><abbr title="App\Models\Feed::getStatusAttribute">getStatusAttribute</abbr></a></td><td class="text-right">30</td></tr>
<tr><td><a href="Feed.php.html#54"><abbr title="App\Models\Feed::getTypeDisplayAttribute">getTypeDisplayAttribute</abbr></a></td><td class="text-right">20</td></tr>
<tr><td><a href="PlatformAccount.php.html#60"><abbr title="App\Models\PlatformAccount::password">password</abbr></a></td><td class="text-right">12</td></tr>
<tr><td><a href="PlatformAccount.php.html#72"><abbr title="App\Models\PlatformAccount::apiToken">apiToken</abbr></a></td><td class="text-right">12</td></tr>
</tbody>
</table>
</div>
</div>
</div>
<footer>
<hr/>
<p>
2025-08-03 21:16:59 +02:00
<small>Generated by <a href="https://github.com/sebastianbergmann/php-code-coverage" target="_top">php-code-coverage 11.0.10</a> using <a href="https://www.php.net/" target="_top">PHP 8.4.10</a> and <a href="https://phpunit.de/">PHPUnit 11.5.28</a> at Sun Aug 3 19:15:34 UTC 2025.</small>
2025-08-03 20:59:09 +02:00
</p>
</footer>
</div>
<script src="../_js/jquery.min.js?v=11.0.10" type="text/javascript"></script>
<script src="../_js/d3.min.js?v=11.0.10" type="text/javascript"></script>
<script src="../_js/nv.d3.min.js?v=11.0.10" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
nv.addGraph(function() {
var chart = nv.models.multiBarChart();
chart.tooltips(false)
.showControls(false)
.showLegend(false)
.reduceXTicks(false)
.staggerLabels(true)
.yAxis.tickFormat(d3.format('d'));
d3.select('#classCoverageDistribution svg')
2025-08-03 21:16:59 +02:00
.datum(getCoverageDistributionData([5,1,0,0,0,0,1,1,0,0,0,5], "Class Coverage"))
2025-08-03 20:59:09 +02:00
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
nv.addGraph(function() {
var chart = nv.models.multiBarChart();
chart.tooltips(false)
.showControls(false)
.showLegend(false)
.reduceXTicks(false)
.staggerLabels(true)
.yAxis.tickFormat(d3.format('d'));
d3.select('#methodCoverageDistribution svg')
2025-08-03 21:16:59 +02:00
.datum(getCoverageDistributionData([28,0,0,0,0,0,0,0,0,0,0,26], "Method Coverage"))
2025-08-03 20:59:09 +02:00
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
function getCoverageDistributionData(data, label) {
var labels = [
'0%',
'0-10%',
'10-20%',
'20-30%',
'30-40%',
'40-50%',
'50-60%',
'60-70%',
'70-80%',
'80-90%',
'90-100%',
'100%'
];
var values = [];
$.each(labels, function(key) {
values.push({x: labels[key], y: data[key]});
});
return [
{
key: label,
values: values,
color: "#4572A7"
}
];
}
nv.addGraph(function() {
var chart = nv.models.scatterChart()
.showDistX(true)
.showDistY(true)
.showLegend(false)
.forceX([0, 100]);
chart.tooltipContent(function(graph) {
return '<p>' + graph.point.class + '</p>';
});
chart.xAxis.axisLabel('Code Coverage (in percent)');
chart.yAxis.axisLabel('Cyclomatic Complexity');
d3.select('#classComplexity svg')
2025-08-03 21:16:59 +02:00
.datum(getComplexityData([[100,15,"<a href=\"Article.php.html#28\">App\\Models\\Article<\/a>"],[100,1,"<a href=\"ArticlePublication.php.html#17\">App\\Models\\ArticlePublication<\/a>"],[8.333333333333332,13,"<a href=\"Feed.php.html#30\">App\\Models\\Feed<\/a>"],[0,2,"<a href=\"Keyword.php.html#20\">App\\Models\\Keyword<\/a>"],[60,3,"<a href=\"Language.php.html#11\">App\\Models\\Language<\/a>"],[100,0,"<a href=\"Log.php.html#18\">App\\Models\\Log<\/a>"],[0,10,"<a href=\"PlatformAccount.php.html#32\">App\\Models\\PlatformAccount<\/a>"],[0,7,"<a href=\"PlatformChannel.php.html#22\">App\\Models\\PlatformChannel<\/a>"],[0,3,"<a href=\"PlatformChannelPost.php.html#12\">App\\Models\\PlatformChannelPost<\/a>"],[0,3,"<a href=\"PlatformInstance.php.html#21\">App\\Models\\PlatformInstance<\/a>"],[50,3,"<a href=\"Route.php.html#21\">App\\Models\\Route<\/a>"],[100,10,"<a href=\"Setting.php.html#7\">App\\Models\\Setting<\/a>"],[100,1,"<a href=\"User.php.html#11\">App\\Models\\User<\/a>"]], 'Class Complexity'))
2025-08-03 20:59:09 +02:00
.transition()
.duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
nv.addGraph(function() {
var chart = nv.models.scatterChart()
.showDistX(true)
.showDistY(true)
.showLegend(false)
.forceX([0, 100]);
chart.tooltipContent(function(graph) {
return '<p>' + graph.point.class + '</p>';
});
chart.xAxis.axisLabel('Code Coverage (in percent)');
chart.yAxis.axisLabel('Method Complexity');
d3.select('#methodComplexity svg')
2025-08-03 21:16:59 +02:00
.datum(getComplexityData([[100,1,"<a href=\"Article.php.html#50\">App\\Models\\Article::casts<\/a>"],[100,3,"<a href=\"Article.php.html#64\">App\\Models\\Article::isValid<\/a>"],[100,1,"<a href=\"Article.php.html#77\">App\\Models\\Article::isApproved<\/a>"],[100,1,"<a href=\"Article.php.html#82\">App\\Models\\Article::isPending<\/a>"],[100,1,"<a href=\"Article.php.html#87\">App\\Models\\Article::isRejected<\/a>"],[100,1,"<a href=\"Article.php.html#92\">App\\Models\\Article::approve<\/a>"],[100,1,"<a href=\"Article.php.html#104\">App\\Models\\Article::reject<\/a>"],[100,3,"<a href=\"Article.php.html#113\">App\\Models\\Article::canBePublished<\/a>"],[100,1,"<a href=\"Article.php.html#131\">App\\Models\\Article::articlePublication<\/a>"],[100,1,"<a href=\"Article.php.html#139\">App\\Models\\Article::feed<\/a>"],[100,1,"<a href=\"Article.php.html#144\">App\\Models\\Article::booted<\/a>"],[100,1,"<a href=\"ArticlePublication.php.html#40\">App\\Models\\ArticlePublication::article<\/a>"],[0,4,"<a href=\"Feed.php.html#54\">App\\Models\\Feed::getTypeDisplayAttribute<\/a>"],[0,5,"<a href=\"Feed.php.html#63\">App\\Models\\Feed::getStatusAttribute<\/a>"],[0,1,"<a href=\"Feed.php.html#87\">App\\Models\\Feed::channels<\/a>"],[0,1,"<a href=\"Feed.php.html#98\">App\\Models\\Feed::activeChannels<\/a>"],[100,1,"<a href=\"Feed.php.html#108\">App\\Models\\Feed::articles<\/a>"],[100,1,"<a href=\"Feed.php.html#116\">App\\Models\\Feed::language<\/a>"],[0,1,"<a href=\"Keyword.php.html#36\">App\\Models\\Keyword::feed<\/a>"],[0,1,"<a href=\"Keyword.php.html#44\">App\\Models\\Keyword::platformChannel<\/a>"],[100,1,"<a href=\"Language.php.html#30\">App\\Models\\Language::platformInstances<\/a>"],[0,1,"<a href=\"Language.php.html#40\">App\\Models\\Language::platformChannels<\/a>"],[0,1,"<a href=\"Language.php.html#48\">App\\Models\\Language::feeds<\/a>"],[0,3,"<a href=\"PlatformAccount.php.html#60\">App\\Models\\PlatformAccount::password<\/a>"],[0,3,"<a href=\"PlatformAccount.php.html#72\">App\\Models\\PlatformAccount::apiToken<\/a>"],[0,1,"<a href=\"PlatformAccount.php.html#84\">App\\Models\\PlatformAccount::getActive<\/a>"],[0,1,"<a href=\"PlatformAccount.php.html#92\">App\\Models\\PlatformAccount::setAsActive<\/a>"],[0,1,"<a href=\"PlatformAccount.php.html#106\">App\\Models\\PlatformAccount::channels<\/a>"],[0,1,"<a href=\"PlatformAccount.php.html#116\">App\\Models\\PlatformAccount::activeChannels<\/a>"],[0,1,"<a href=\"PlatformChannel.php.html#46\">App\\Models\\PlatformChannel::platformInstance<\/a>"],[0,1,"<a href=\"PlatformChannel.php.html#54\">App\\Models\\PlatformChannel::platformAccounts<\/a>"],[0,1,"<a href=\"PlatformChannel.php.html#64\">App\\Models\\PlatformChannel::activePlatformAccounts<\/a>"],[0,1,"<a href=\"PlatformChannel.php.html#69\">App\\Models\\PlatformChannel::getFullNameAttribute<\/a>"],[0,1,"<a href=\"PlatformChannel.php.html#78\">App\\Models\\PlatformChannel::feeds<\/a>"],[0,1,"<a href=\"PlatformChannel.php.html#89\">App\\Models\\PlatformChannel::activeFeeds<\/a>"],[0,1,"<a href=\"PlatformChannel.php.html#99\">App\\Models\\PlatformChannel::language<\/a>"],[0,1,"<a href=\"PlatformChannelPost.php.html#27\">App\\Models\\PlatformChannelPost::casts<\/a>"],[0,1,"<a href=\"PlatformChannelPost.php.html#35\">App\\Models\\PlatformChannelPost::urlExists<\/a>"],[0,1,"<a href=\"PlatformChannelPost.php.html#43\">App\\Models\\PlatformChannelPost::storePost<\/a>"],[0,1,"<a href=\"PlatformInstance.php.html#42\">App\\Models\\PlatformInstance::channels<\/a>"],[0,1,"<a href=\"PlatformInstance.php.html#50\">App\\Models\\PlatformInstance::languages<\/a>"],[0,1,"<a href=\"PlatformInstance.php.html#57\">App\\Models\\PlatformInstance::findByUrl<\/a>"],[100,1,"<a href=\"Route.php.html#46\">App\\Models\\Route::feed<\/a>"],[100,1,"<a href=\"Route.php.html#54\">App\\Models\\Route::platformChannel<\/a>"],[0,1,"<a href=\"Route.php.html#62\">App\\Models\\Route::keywords<\/a>"],[100,2,"<a href=\"Setting.php.html#11\">App\\Models\\Setting::get<\/a>"],[100,1,"<a href=\"Setting.php.html#18\">App\\Models\\Setting::set<\/a>"],[100,1,"<a href=\"Setting.php
2025-08-03 20:59:09 +02:00
.transition()
.duration(500)
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
});
function getComplexityData(data, label) {
var values = [];
$.each(data, function(key) {
var value = Math.round(data[key][0]*100) / 100;
values.push({
x: value,
y: data[key][1],
class: data[key][2],
size: 0.05,
shape: 'diamond'
});
});
return [
{
key: label,
values: values,
color: "#4572A7"
}
];
}
});
</script>
</body>
</html>