diff --git a/modules/cron/tasks_basic.go b/modules/cron/tasks_basic.go index e238418d8..207018c20 100755 --- a/modules/cron/tasks_basic.go +++ b/modules/cron/tasks_basic.go @@ -11,7 +11,6 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/migrations" repository_service "code.gitea.io/gitea/modules/repository" - api_repo "code.gitea.io/gitea/routers/api/v1/repo" "code.gitea.io/gitea/routers/repo" mirror_service "code.gitea.io/gitea/services/mirror" ) @@ -186,17 +185,6 @@ func registerHandleSummaryStatistic() { }) } -func registerHandleClearRepoStatisticFile() { - RegisterTaskFatal("handle_repo_clear_statistic_file", &BaseConfig{ - Enabled: true, - RunAtStart: false, - Schedule: "@daily", - }, func(ctx context.Context, _ *models.User, _ Config) error { - api_repo.ClearUnusedStatisticsFile() - return nil - }) -} - func initBasicTasks() { registerUpdateMirrorTask() registerRepoHealthCheck() diff --git a/routers/api/v1/repo/repo_dashbord.go b/routers/api/v1/repo/repo_dashbord.go index 2becdd59f..041162039 100644 --- a/routers/api/v1/repo/repo_dashbord.go +++ b/routers/api/v1/repo/repo_dashbord.go @@ -2,7 +2,6 @@ package repo import ( "fmt" - "io/ioutil" "net/http" "net/url" "os" @@ -174,7 +173,7 @@ func ServeAllProjectsPeriodStatisticsFile(ctx *context.Context) { return } var projectAnalysis = ctx.Tr("repo.repo_stat_inspect") - fileName, frontName := getFileName(ctx, beginTime, endTime, projectAnalysis) + fileName := getFileName(ctx, beginTime, endTime, projectAnalysis) if err := os.MkdirAll(setting.RadarMap.Path, os.ModePerm); err != nil { ctx.Error(http.StatusBadRequest, fmt.Errorf("Failed to create dir %s: %v", setting.AvatarUploadPath, err).Error()) @@ -207,17 +206,14 @@ func ServeAllProjectsPeriodStatisticsFile(ctx *context.Context) { f.SetActiveSheet(index) f.DeleteSheet("Sheet1") - if err := f.SaveAs(fileName); err != nil { - log.Error("Can not generate file.", err) - ctx.Error(http.StatusBadRequest, ctx.Tr("repo.generate_statistic_file_error")) - return - } + ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+url.QueryEscape(fileName)) + ctx.Resp.Header().Set("Content-Type", "application/octet-stream") - ctx.ServeFile(fileName, url.QueryEscape(frontName)) + f.WriteTo(ctx.Resp) } -func getFileName(ctx *context.Context, beginTime time.Time, endTime time.Time, projectAnalysis string) (string, string) { +func getFileName(ctx *context.Context, beginTime time.Time, endTime time.Time, projectAnalysis string) string { baseName := setting.RadarMap.Path + "/" + projectAnalysis + "_" if ctx.QueryTrim("q") != "" { @@ -229,23 +225,7 @@ func getFileName(ctx *context.Context, beginTime time.Time, endTime time.Time, p baseName = baseName + beginTime.AddDate(0, 0, -1).Format(EXCEL_DATE_FORMAT) + "_" + endTime.AddDate(0, 0, -1).Format(EXCEL_DATE_FORMAT) } frontName := baseName + ".xlsx" - localName := baseName + "_" + strconv.FormatInt(time.Now().Unix(), 10) + ".xlsx" - return localName, path.Base(frontName) -} - -func ClearUnusedStatisticsFile() { - fileInfos, err := ioutil.ReadDir(setting.RadarMap.Path) - if err != nil { - log.Warn("can not read dir: "+setting.RadarMap.Path, err) - return - } - - for _, fileInfo := range fileInfos { - if !fileInfo.IsDir() && fileInfo.ModTime().Before(time.Now().AddDate(0, 0, -1)) { - os.Remove(path.Join(setting.RadarMap.Path, fileInfo.Name())) - } - } - + return path.Base(frontName) } func allProjectsPeroidHeader(ctx *context.Context) map[string]string {