Skip to content

Commit 0e8980d

Browse files
Thomas StrombergThomas Stromberg
authored andcommitted
Improve web text alignment
1 parent 4cb622d commit 0e8980d

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

internal/server/static/index.html

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1685,16 +1685,16 @@ <h3>Why calculate PR costs?</h3>
16851685
// Delay Costs
16861686
output += ' Delay Costs\n';
16871687
output += ' ───────────\n';
1688-
output += ` Workstream blockage ${formatCurrency(avgDeliveryDelayCost).padStart(15)} ${formatTimeUnit(avgDeliveryDelayHours)} (${e.human_prs} PRs)\n`;
1688+
output += formatItemLine("Workstream blockage", avgDeliveryDelayCost, formatTimeUnit(avgDeliveryDelayHours), `(${e.human_prs} PRs)`);
16891689
const avgAutomatedUpdatesCost = e.automated_updates_cost / totalPRs;
16901690
const avgAutomatedUpdatesHours = e.automated_updates_hours / totalPRs;
16911691
const avgPRTrackingCost = e.pr_tracking_cost / totalPRs;
16921692
const avgPRTrackingHours = e.pr_tracking_hours / totalPRs;
16931693
if (avgAutomatedUpdatesCost > 0.01) {
1694-
output += ` Automated Updates ${formatCurrency(avgAutomatedUpdatesCost).padStart(15)} ${formatTimeUnit(avgAutomatedUpdatesHours)} (${e.bot_prs} PRs)\n`;
1694+
output += formatItemLine("Automated Updates", avgAutomatedUpdatesCost, formatTimeUnit(avgAutomatedUpdatesHours), `(${e.bot_prs} PRs)`);
16951695
}
16961696
if (avgPRTrackingCost > 0.01) {
1697-
output += ` PR Tracking ${formatCurrency(avgPRTrackingCost).padStart(15)} ${formatTimeUnit(avgPRTrackingHours)} (${e.open_prs} open PRs)\n`;
1697+
output += formatItemLine("PR Tracking", avgPRTrackingCost, formatTimeUnit(avgPRTrackingHours), `(${e.open_prs} open PRs)`);
16981698
}
16991699
const avgMergeDelayCost = avgDeliveryDelayCost + avgCodeChurnCost + avgAutomatedUpdatesCost + avgPRTrackingCost;
17001700
const avgMergeDelayHours = avgDeliveryDelayHours + avgCodeChurnHours + avgAutomatedUpdatesHours + avgPRTrackingHours;
@@ -1710,17 +1710,17 @@ <h3>Why calculate PR costs?</h3>
17101710
if (e.code_churn_cost > 0.01) {
17111711
const avgReworkPct = e.avg_rework_percentage || 0;
17121712
const label = avgReworkPct > 0 ? `Code Churn (${avgReworkPct.toFixed(0)}% drift)` : 'Code Churn';
1713-
output += ` ${label.padEnd(26)} ${formatCurrency(avgCodeChurnCost).padStart(15)} ${formatTimeUnit(avgCodeChurnHours)} (${e.code_churn_pr_count} PRs)\n`;
1713+
output += formatItemLine(label, avgCodeChurnCost, formatTimeUnit(avgCodeChurnHours), `(${e.code_churn_pr_count} PRs)`);
17141714
}
17151715
if (e.future_review_cost > 0.01) {
1716-
output += ` Review ${formatCurrency(avgFutureReviewCost).padStart(15)} ${formatTimeUnit(avgFutureReviewHours)} (${e.future_review_pr_count} PRs)\n`;
1716+
output += formatItemLine("Review", avgFutureReviewCost, formatTimeUnit(avgFutureReviewHours), `(${e.future_review_pr_count} PRs)`);
17171717
}
17181718
if (e.future_merge_cost > 0.01) {
1719-
output += ` Merge ${formatCurrency(avgFutureMergeCost).padStart(15)} ${formatTimeUnit(avgFutureMergeHours)} (${e.future_merge_pr_count} PRs)\n`;
1719+
output += formatItemLine("Merge", avgFutureMergeCost, formatTimeUnit(avgFutureMergeHours), `(${e.future_merge_pr_count} PRs)`);
17201720
}
17211721
if (e.future_context_cost > 0.01) {
17221722
const avgFutureContextSessions = e.future_context_sessions / totalPRs;
1723-
output += ` Context Switching ${formatCurrency(avgFutureContextCost).padStart(15)} ${formatTimeUnit(avgFutureContextHours)} (${avgFutureContextSessions.toFixed(1)} sessions)\n`;
1723+
output += formatItemLine("Context Switching", avgFutureContextCost, formatTimeUnit(avgFutureContextHours), `(${avgFutureContextSessions.toFixed(1)} sessions)`);
17241724
}
17251725
const avgFutureCost = avgCodeChurnCost + avgFutureReviewCost + avgFutureMergeCost + avgFutureContextCost;
17261726
const avgFutureHours = avgCodeChurnHours + avgFutureReviewHours + avgFutureMergeHours + avgFutureContextHours;
@@ -1794,13 +1794,13 @@ <h3>Why calculate PR costs?</h3>
17941794
output += ' ' + '─'.repeat(delayCostsHeader.length - 2) + '\n';
17951795

17961796
if ((e.delivery_delay_cost || 0) > 0) {
1797-
output += ` Workstream blockage ${formatCurrency(e.delivery_delay_cost).padStart(15)} ${formatTimeUnit(e.delivery_delay_hours)} (${e.human_prs || 0} PRs)\n`;
1797+
output += formatItemLine("Workstream blockage", e.delivery_delay_cost, formatTimeUnit(e.delivery_delay_hours), `(${e.human_prs || 0} PRs)`);
17981798
}
17991799
if ((e.automated_updates_cost || 0) > 0) {
1800-
output += ` Automated Updates ${formatCurrency(e.automated_updates_cost).padStart(15)} ${formatTimeUnit(e.automated_updates_hours)} (${e.bot_prs || 0} PRs)\n`;
1800+
output += formatItemLine("Automated Updates", e.automated_updates_cost, formatTimeUnit(e.automated_updates_hours), `(${e.bot_prs || 0} PRs)`);
18011801
}
18021802
if ((e.pr_tracking_cost || 0) > 0) {
1803-
output += ` PR Tracking ${formatCurrency(e.pr_tracking_cost).padStart(15)} ${formatTimeUnit(e.pr_tracking_hours)} (${e.open_prs || 0} open PRs)\n`;
1803+
output += formatItemLine("PR Tracking", e.pr_tracking_cost, formatTimeUnit(e.pr_tracking_hours), `(${e.open_prs || 0} open PRs)`);
18041804
}
18051805

18061806
const mergeDelayCost = (e.delivery_delay_cost || 0) + (e.code_churn_cost || 0) + (e.automated_updates_cost || 0) + (e.pr_tracking_cost || 0);
@@ -1815,18 +1815,18 @@ <h3>Why calculate PR costs?</h3>
18151815
output += ' Future Costs\n';
18161816
output += ' ────────────\n';
18171817
if ((e.code_churn_cost || 0) > 0.01) {
1818-
output += ` Code Churn ${formatCurrency(e.code_churn_cost).padStart(15)} ${formatTimeUnit(e.code_churn_hours)}\n`;
1818+
output += formatItemLine("Code Churn", e.code_churn_cost, formatTimeUnit(e.code_churn_hours), "");
18191819
}
18201820
if ((e.future_review_cost || 0) > 0.01) {
18211821
const openPRs = e.open_prs || 0;
1822-
output += ` Review ${formatCurrency(e.future_review_cost).padStart(15)} ${formatTimeUnit(e.future_review_hours)} (${openPRs} PRs)\n`;
1822+
output += formatItemLine("Review", e.future_review_cost, formatTimeUnit(e.future_review_hours), `(${openPRs} PRs)`);
18231823
}
18241824
if ((e.future_merge_cost || 0) > 0.01) {
18251825
const openPRs = e.open_prs || 0;
1826-
output += ` Merge ${formatCurrency(e.future_merge_cost).padStart(15)} ${formatTimeUnit(e.future_merge_hours)} (${openPRs} PRs)\n`;
1826+
output += formatItemLine("Merge", e.future_merge_cost, formatTimeUnit(e.future_merge_hours), `(${openPRs} PRs)`);
18271827
}
18281828
if ((e.future_context_cost || 0) > 0.01) {
1829-
output += ` Context Switching ${formatCurrency(e.future_context_cost).padStart(15)} ${formatTimeUnit(e.future_context_hours)} (${e.future_context_sessions || 0} sessions)\n`;
1829+
output += formatItemLine("Context Switching", e.future_context_cost, formatTimeUnit(e.future_context_hours), `(${e.future_context_sessions || 0} sessions)`);
18301830
}
18311831
const futureCost = (e.code_churn_cost || 0) + (e.future_review_cost || 0) + (e.future_merge_cost || 0) + (e.future_context_cost || 0);
18321832
const futureHours = (e.code_churn_hours || 0) + (e.future_review_hours || 0) + (e.future_merge_hours || 0) + (e.future_context_hours || 0);

0 commit comments

Comments
 (0)