148 lines
6.4 KiB
HTML
148 lines
6.4 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>PerfReviewSummarizer - Анализ Git коммитов</title>
|
||
<link rel="stylesheet" href="styles.css">
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<header>
|
||
<h1>📊 PerfReviewSummarizer</h1>
|
||
<p class="subtitle">Анализ git-коммитов и формирование summary за период</p>
|
||
</header>
|
||
|
||
<div class="form-section">
|
||
<h2>Параметры анализа</h2>
|
||
|
||
<div class="tabs">
|
||
<button class="tab-button active" data-tab="traditional">Traditional Summary</button>
|
||
<button class="tab-button" data-tab="ai">AI Summary (OpenAI)</button>
|
||
</div>
|
||
|
||
<form id="summaryForm" class="tab-content active" data-tab="traditional">
|
||
<div class="form-group">
|
||
<label for="repositoryPath">Путь к репозиторию:</label>
|
||
<input type="text" id="repositoryPath" placeholder=". (текущая директория)" />
|
||
</div>
|
||
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="period">Период:</label>
|
||
<select id="period">
|
||
<option value="">Выберите период</option>
|
||
<option value="quarter">Текущий квартал</option>
|
||
<option value="halfyear">Текущее полугодие</option>
|
||
<option value="custom">Произвольный период</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="form-row" id="customDates" style="display: none;">
|
||
<div class="form-group">
|
||
<label for="startDate">Начальная дата:</label>
|
||
<input type="date" id="startDate" />
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="endDate">Конечная дата:</label>
|
||
<input type="date" id="endDate" />
|
||
</div>
|
||
</div>
|
||
|
||
<button type="submit" class="btn-primary">Получить Summary</button>
|
||
</form>
|
||
|
||
<form id="aiSummaryForm" class="tab-content" data-tab="ai">
|
||
<div class="form-group">
|
||
<label for="aiRepositoryPath">Путь к репозиторию:</label>
|
||
<input type="text" id="aiRepositoryPath" placeholder=". (текущая директория)" />
|
||
</div>
|
||
|
||
<div class="form-row">
|
||
<div class="form-group">
|
||
<label for="aiPeriod">Период:</label>
|
||
<select id="aiPeriod">
|
||
<option value="">Выберите период</option>
|
||
<option value="quarter">Текущий квартал</option>
|
||
<option value="halfyear">Текущее полугодие</option>
|
||
<option value="custom">Произвольный период</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="form-row" id="aiCustomDates" style="display: none;">
|
||
<div class="form-group">
|
||
<label for="aiStartDate">Начальная дата:</label>
|
||
<input type="date" id="aiStartDate" />
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="aiEndDate">Конечная дата:</label>
|
||
<input type="date" id="aiEndDate" />
|
||
</div>
|
||
</div>
|
||
|
||
<button type="submit" class="btn-primary">Получить AI Summary</button>
|
||
</form>
|
||
</div>
|
||
|
||
<div id="loading" class="loading" style="display: none;">
|
||
<div class="spinner"></div>
|
||
<p>Анализ коммитов...</p>
|
||
</div>
|
||
|
||
<div id="error" class="error" style="display: none;"></div>
|
||
|
||
<div id="results" style="display: none;">
|
||
<div class="results-header">
|
||
<h2>Результаты анализа</h2>
|
||
<div class="period-info" id="periodInfo"></div>
|
||
</div>
|
||
|
||
<div id="aiSummaryResult" style="display: none;">
|
||
<div class="ai-summary-box">
|
||
<h3>🤖 AI Summary</h3>
|
||
<div id="aiSummaryText" class="ai-summary-text"></div>
|
||
<p class="commits-count">Анализировано коммитов: <strong id="aiCommitsCount">0</strong></p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="stats-grid">
|
||
<div class="stat-card">
|
||
<div class="stat-value" id="totalCommits">0</div>
|
||
<div class="stat-label">Всего коммитов</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="stat-value" id="totalFiles">0</div>
|
||
<div class="stat-label">Файлов изменено</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="stat-value" id="totalAdditions">0</div>
|
||
<div class="stat-label">Строк добавлено</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="stat-value" id="totalDeletions">0</div>
|
||
<div class="stat-label">Строк удалено</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="stat-value" id="uniqueContributors">0</div>
|
||
<div class="stat-label">Уникальных авторов</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="categories-section">
|
||
<h3>Категории изменений</h3>
|
||
<div id="categories"></div>
|
||
</div>
|
||
|
||
<div class="top-commits-section">
|
||
<h3>Топ коммитов</h3>
|
||
<div id="topCommits"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="app.js"></script>
|
||
</body>
|
||
</html>
|