Browse Source

update

tags/v1.22.3.2^2
liuzx 3 years ago
parent
commit
6077d4fe65
4 changed files with 119 additions and 1 deletions
  1. +82
    -0
      models/attachment.go
  2. +34
    -0
      routers/repo/dataset.go
  3. +3
    -1
      routers/routes/routes.go
  4. +0
    -0
      templates/repo/datasets/tasks/index.tmpl

+ 82
- 0
models/attachment.go View File

@@ -18,6 +18,7 @@ import (
"code.gitea.io/gitea/modules/timeutil"

gouuid "github.com/satori/go.uuid"
"xorm.io/builder"
"xorm.io/xorm"
)

@@ -55,6 +56,19 @@ type AttachmentUsername struct {
Name string
}

type AttachmentInfo struct {
Attachment `xorm:"extends"`
Repo *Repository `xorm:"extends"`
}

type AttachmentsOptions struct {
ListOptions
DatasetID int8
DecompressState int
Type int
NeedRepoInfo bool
}

func (a *Attachment) AfterUpdate() {
if a.DatasetID > 0 {
datasetIsPublicCount, err := x.Where("dataset_id = ? AND is_private = ?", a.DatasetID, false).Count(new(Attachment))
@@ -504,3 +518,71 @@ func GetAttachmentSizeByDatasetID(datasetID int64) (int64, error) {
func GetAllAttachmentSize() (int64, error) {
return x.SumInt(&Attachment{}, "size")
}

func Attachments(opts *AttachmentsOptions) ([]*AttachmentInfo, int64, error) {
sess := x.NewSession()
defer sess.Close()

var cond = builder.NewCond()
if opts.DatasetID > 0 {
cond = cond.And(
builder.Eq{"attachment.dataset_id": opts.DatasetID},
)
}

if opts.DecompressState > 0 {
cond = cond.And(
builder.Eq{"attachment.decompress_state": opts.DecompressState},
)
}

if (opts.Type) >= 0 {
cond = cond.And(
builder.Eq{"cloudbrain.type": opts.Type},
)
}

var count int64
var err error
if opts.DatasetID > 0 {
count, err = sess.Where(cond).Count(new(Attachment))
}

if err != nil {
return nil, 0, fmt.Errorf("Count: %v", err)
}

if opts.Page >= 0 && opts.PageSize > 0 {
var start int
if opts.Page == 0 {
start = 0
} else {
start = (opts.Page - 1) * opts.PageSize
}
sess.Limit(opts.PageSize, start)
}

sess.OrderBy("attachment.created_unix DESC")
attachments := make([]*AttachmentInfo, 0, setting.UI.IssuePagingNum)
if err := sess.Table(&Attachment{}).Where(cond).
Find(&attachments); err != nil {
return nil, 0, fmt.Errorf("Find: %v", err)
}

if opts.NeedRepoInfo {
for _, attachment := range attachments {
dataset, err := GetDatasetByID(attachment.DatasetID)
if err != nil {
return nil, 0, fmt.Errorf("GetDatasetByID failed error: %v", err)
}
repo, err := GetRepositoryByID(dataset.RepoID)
if err == nil {
attachment.Repo = repo
} else {
return nil, 0, fmt.Errorf("GetRepositoryByID failed error: %v", err)
}
}
}

return attachments, count, nil
}

+ 34
- 0
routers/repo/dataset.go View File

@@ -1,6 +1,7 @@
package repo

import (
"encoding/json"
"net/http"
"regexp"
"sort"
@@ -19,6 +20,7 @@ const (
tplIndex base.TplName = "repo/datasets/index"
tplDatasetCreate base.TplName = "repo/datasets/create"
tplDatasetEdit base.TplName = "repo/datasets/edit"
taskstplIndex base.TplName = "repo/datasets/tasks/index"
)

var titlePattern = regexp.MustCompile(`^[A-Za-z0-9-_\\.]{1,100}$`)
@@ -280,3 +282,35 @@ func DatasetAction(ctx *context.Context) {
}

}

func TasksDatasetIndex(ctx *context.Context) {
page := ctx.QueryInt("page")
// repo := ctx.Repo.Repository

datasets, count, err := models.Attachments(&models.AttachmentsOptions{
ListOptions: models.ListOptions{
Page: page,
PageSize: setting.UI.IssuePagingNum,
},
Type: models.TypeCloudBrainTwo,
})
if err != nil {
ctx.ServerError("datasets", err)
return
}

data, err := json.Marshal(datasets)
if err != nil {
log.Error("json.Marshal failed:", err.Error())
ctx.JSON(200, map[string]string{
"result_code": "-1",
"error_msg": err.Error(),
"data": "",
})
return
}
ctx.JSON(200, map[string]string{
"data": string(data),
"count": strconv.FormatInt(count, 10),
})
}

+ 3
- 1
routers/routes/routes.go View File

@@ -6,13 +6,14 @@ package routes

import (
"bytes"
"code.gitea.io/gitea/routers/authentication"
"encoding/gob"
"net/http"
"path"
"text/template"
"time"

"code.gitea.io/gitea/routers/authentication"

"code.gitea.io/gitea/modules/cloudbrain"

"code.gitea.io/gitea/routers/operation"
@@ -984,6 +985,7 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Post("/create", reqRepoDatasetWriter, bindIgnErr(auth.CreateDatasetForm{}), repo.CreateDatasetPost)
m.Get("/edit/:id", reqRepoDatasetWriter, repo.EditDataset)
m.Post("/edit", reqRepoDatasetWriter, bindIgnErr(auth.EditDatasetForm{}), repo.EditDatasetPost)
m.Get("/tasks", reqRepoDatasetReader, repo.TasksDatasetIndex)

m.Group("/dirs", func() {
m.Get("/:uuid", reqRepoDatasetReader, repo.DirIndex)


+ 0
- 0
templates/repo/datasets/tasks/index.tmpl View File


Loading…
Cancel
Save