feat(app_detail_window): 新增应用详情窗口独立组件
refactor(leonapp_gui): 重构应用详情展示逻辑,直接创建窗口实例 fix(version_control.php): 修复文件路径处理和删除逻辑问题 feat(upload_app.php): 添加Markdown预览功能 style(dashboard.php): 移除冗余的padding样式 chore: 更新favicon和清理pyc缓存文件
This commit is contained in:
@@ -38,6 +38,7 @@ $platforms = json_decode($app['platforms'], true);
|
||||
|
||||
$success = '';
|
||||
$error = '';
|
||||
|
||||
// 处理版本上传请求
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['upload_version'])) {
|
||||
// 验证版本信息
|
||||
@@ -45,7 +46,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['upload_version'])) {
|
||||
$error = '版本号和安装包不能为空';
|
||||
} else {
|
||||
// 处理App文件上传
|
||||
$uploadDir = '../files/';
|
||||
$uploadDir = __DIR__ . '/../files/';
|
||||
if (!is_dir($uploadDir)) {
|
||||
mkdir($uploadDir, 0755, true);
|
||||
}
|
||||
@@ -64,10 +65,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['upload_version'])) {
|
||||
$error = '版本保存失败,请稍后再试';
|
||||
unlink($targetPath); // 清理已上传文件
|
||||
} else {
|
||||
$verStmt->bind_param("isss", $appId, $version, $changelog, $targetPath);
|
||||
$verStmt->bind_param("isss", $appId, $version, $changelog, $fileName);
|
||||
|
||||
if ($verStmt->execute()) {
|
||||
// 更新应用表中的最新版本
|
||||
// 更新应用表中的最新版本
|
||||
$updateAppSql = "UPDATE apps SET version = ? WHERE id = ?";
|
||||
$updStmt = $conn->prepare($updateAppSql);
|
||||
@@ -99,7 +99,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['version_id'])) {
|
||||
|
||||
// 检查是否有新文件上传
|
||||
if (!empty($_FILES['new_app_file']['name'])) {
|
||||
$uploadDir = '../files/';
|
||||
$uploadDir = __DIR__ . '/../files/';
|
||||
if (!is_dir($uploadDir)) {
|
||||
mkdir($uploadDir, 0755, true);
|
||||
}
|
||||
@@ -120,7 +120,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['version_id'])) {
|
||||
$oldPathResult = $getOldPathStmt->get_result();
|
||||
if ($oldPathResult->num_rows > 0) {
|
||||
$oldPathRow = $oldPathResult->fetch_assoc();
|
||||
$oldFilePath = $oldPathRow['file_path'];
|
||||
$oldFileName = $oldPathRow['file_path'];
|
||||
$oldFilePath = $uploadDir . $oldFileName;
|
||||
if (file_exists($oldFilePath)) {
|
||||
unlink($oldFilePath);
|
||||
}
|
||||
@@ -134,7 +135,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['version_id'])) {
|
||||
$error = '版本修改失败,请稍后再试';
|
||||
unlink($newFilePath);
|
||||
} else {
|
||||
$updateVersionStmt->bind_param("sssi", $version, $changelog, $newFilePath, $versionId);
|
||||
$updateVersionStmt->bind_param("sssi", $version, $changelog, $fileName, $versionId);
|
||||
if ($updateVersionStmt->execute()) {
|
||||
$success = '版本修改成功';
|
||||
} else {
|
||||
@@ -167,13 +168,30 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['version_id'])) {
|
||||
// 处理版本删除请求
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_version'])) {
|
||||
$versionId = $_POST['version_id'];
|
||||
$filePath = $_POST['file_path'];
|
||||
$uploadDir = __DIR__ . '/../files/';
|
||||
|
||||
// 删除文件
|
||||
if (file_exists($filePath)) {
|
||||
if (!unlink($filePath)) {
|
||||
log_error("文件删除失败: " . $filePath, __FILE__, __LINE__);
|
||||
$error = '版本删除失败,请稍后再试';
|
||||
// 获取文件路径
|
||||
$getFilePathSql = "SELECT file_path FROM app_versions WHERE id = ?";
|
||||
$getFileStmt = $conn->prepare($getFilePathSql);
|
||||
if (!$getFileStmt) {
|
||||
log_error("获取文件路径查询准备失败: " . $conn->error, __FILE__, __LINE__);
|
||||
$error = '版本删除失败,请稍后再试';
|
||||
} else {
|
||||
$getFileStmt->bind_param("i", $versionId);
|
||||
$getFileStmt->execute();
|
||||
$fileResult = $getFileStmt->get_result();
|
||||
if ($fileResult->num_rows > 0) {
|
||||
$fileRow = $fileResult->fetch_assoc();
|
||||
$fileName = $fileRow['file_path'];
|
||||
$filePath = $uploadDir . $fileName;
|
||||
|
||||
// 删除文件
|
||||
if (file_exists($filePath)) {
|
||||
if (!unlink($filePath)) {
|
||||
log_error("文件删除失败: " . $filePath, __FILE__, __LINE__);
|
||||
$error = '版本删除失败,请稍后再试';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -326,7 +344,7 @@ if (!$verStmt) {
|
||||
<td>
|
||||
<a href="../download.php?id=<?php echo $ver['id']; ?>&type=version" class="btn btn-sm btn-outline-primary"><i class="fas fa-download me-1"></i>下载</a>
|
||||
<a href="#" class="btn btn-sm btn-outline-warning ms-2" onclick="openEditModal(<?php echo $ver['id']; ?>, '<?php echo htmlspecialchars($ver['version']); ?>', '<?php echo htmlspecialchars($ver['changelog']); ?>')"><i class="fas fa-edit me-1"></i>修改</a>
|
||||
<a href="#" class="btn btn-sm btn-outline-danger ms-2" onclick="confirmDelete(<?php echo $ver['id']; ?>, '<?php echo htmlspecialchars($ver['file_path']); ?>')"><i class="fas fa-trash-alt me-1"></i>删除</a>
|
||||
<a href="#" class="btn btn-sm btn-outline-danger ms-2" onclick="confirmDelete(<?php echo $ver['id']; ?>)"><i class="fas fa-trash-alt me-1"></i>删除</a>
|
||||
<?php if ($ver['is_current'] == 1): ?>
|
||||
<span class="badge bg-success">当前版本</span>
|
||||
<?php endif; ?>
|
||||
@@ -401,11 +419,10 @@ if (!$verStmt) {
|
||||
});
|
||||
}
|
||||
|
||||
function confirmDelete(versionId, filePath) {
|
||||
function confirmDelete(versionId) {
|
||||
const formData = new FormData();
|
||||
formData.append('delete_version', 'true');
|
||||
formData.append('version_id', versionId);
|
||||
formData.append('file_path', filePath);
|
||||
|
||||
fetch('version_control.php', { method: 'POST', body: formData })
|
||||
.then(response => response.text())
|
||||
|
||||
Reference in New Issue
Block a user