Browse Source

feat: edit dataset post form

tags/vopendata0.1.2
colorfulberry 5 years ago
parent
commit
975e408e91
4 changed files with 30 additions and 53 deletions
  1. +22
    -51
      routers/repo/dataset.go
  2. +1
    -0
      routers/routes/routes.go
  3. +2
    -2
      templates/repo/datasets/index.tmpl
  4. +5
    -0
      web_src/less/_dataset.less

+ 22
- 51
routers/repo/dataset.go View File

@@ -1,15 +1,11 @@
package repo

import (
"errors"

"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth"
"code.gitea.io/gitea/modules/base"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"github.com/unknwon/com"
)

const (
@@ -18,25 +14,25 @@ const (

func DatasetIndex(ctx *context.Context) {
ctx.Data["PageIsDataset"] = true
// ctx.Data["Title"] = ctx.Tr("dataset.show_dataset")
// user := ctx.User
// dataset, err := models.GetOwnerDatasetByID(ctx.ParamsInt64((":id")), user)
// if err != nil {
// ctx.NotFound("GetDataset", err)
// return
// }
ctx.Data["Title"] = ctx.Tr("dataset.show_dataset")
ctx.Data["Link"] = ctx.Repo.RepoLink + "/datasets/5/edit"
user := ctx.User
dataset, err := models.GetDatasetByID(5)
if err != nil {
ctx.NotFound("GetDataset", err)
return
}

// err = models.GeDatasetAttachments(dataset)
// if err != nil {
// ctx.ServerError("GetDatasetAttachments", err)
// return
// }
err = models.GeDatasetAttachments(dataset)
if err != nil {
ctx.ServerError("GetDatasetAttachments", err)
return
}

// isOwner := (ctx.User != nil && dataset.UserID == user.ID)
isOwner := (ctx.User != nil && dataset.UserID == user.ID)

// ctx.Data["dataset"] = dataset
// ctx.Data["IsOwner"] = isOwner
ctx.Data["dataset"] = dataset
ctx.Data["IsOwner"] = isOwner

ctx.HTML(200, tplIndex)
}
@@ -45,40 +41,21 @@ func EditDatasetPost(ctx *context.Context, form auth.EditDatasetForm) {
ctx.Data["Title"] = ctx.Tr("dataset.edit_dataset")

rel, err := models.GetDatasetByID(ctx.ParamsInt64(":id"))
ctx.Data["dataset"] = rel

if err != nil {
ctx.Data["Error"] = true
ctx.ServerError("GetDataset", err)
return
}
isOwner := (ctx.User != nil && rel.UserID == ctx.User.ID)
if !isOwner {
ctx.NotFound("403", errors.New("not owner"))
return
}
ctx.Data["ID"] = rel.ID
ctx.Data["title"] = rel.Title
ctx.Data["description"] = rel.Description
ctx.Data["category"] = rel.Category
ctx.Data["task"] = rel.Task
ctx.Data["license"] = rel.License
ctx.Data["private"] = rel.IsPrivate()

if ctx.HasError() {
ctx.HTML(200, tplCreate)
ctx.Data["Error"] = true
ctx.HTML(200, tplIndex)
return
}

var attachmentUUIDs []string
if setting.Attachment.Enabled {
attachmentUUIDs = form.Files
}

status := models.DatasetStatusPublic
if form.Private {
status = models.DatasetStatusPrivate
}

rel.Title = form.Title
rel.Status = status
rel.Description = form.Description
rel.Category = form.Category
rel.Task = form.Task
@@ -86,11 +63,5 @@ func EditDatasetPost(ctx *context.Context, form auth.EditDatasetForm) {
if err = models.UpdateDataset(models.DefaultDBContext(), rel); err != nil {
log.Error("%v", err)
}

if err = models.AddDatasetAttachments(rel.ID, attachmentUUIDs); err != nil {
log.Error("%v", err)
}
log.Trace("Dataset updated: %d", rel.ID)

ctx.Redirect(setting.AppSubURL + "/datasets/" + com.ToStr(rel.ID))
ctx.HTML(200, tplIndex)
}

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

@@ -764,6 +764,7 @@ func RegisterRoutes(m *macaron.Macaron) {
}, context.RepoMustNotBeArchived())
m.Group("/datasets", func() {
m.Get("", repo.DatasetIndex)
m.Post("/:id/edit", bindIgnErr(auth.EditDatasetForm{}), repo.EditDatasetPost)
}, context.RepoMustNotBeArchived())
m.Group("/comments/:id", func() {
m.Post("", repo.UpdateCommentContent)


+ 2
- 2
templates/repo/datasets/index.tmpl View File

@@ -4,7 +4,7 @@
<form class="ui container" action="{{.Link}}" method="post">
{{.CsrfTokenHtml}}
{{template "base/alert" .}}
<div class="ui two column stackable grid" id="dataset-content">
<div class="ui two column stackable grid {{if .Error}}hide{{end}}" id="dataset-content">
<div class="column">
<h2>{{.dataset.Title}}</h2>
<div id="dataset-desc">
@@ -18,7 +18,7 @@
</div>
</div>

<div class="ui grid form segment success" id="dataset-content-edit" style="display:none">
<div class="ui grid form segment success {{if not .Error}}hide{{end}}" id="dataset-content-edit">
<label class="d-block">{{.i18n.Tr "dataset.title"}}</label>
<div class="sixteen wide column">
<input name="title" placeholder='{{.i18n.Tr "dataset.title"}}' value="{{.dataset.Title}}" autofocus required maxlength="255">


+ 5
- 0
web_src/less/_dataset.less View File

@@ -151,6 +151,11 @@
margin: 0 6px;
}
}
.dataset-list {
.hide {
display: none;
}
}
.ui.dataset.list {
.item {
padding-bottom: 25px;


Loading…
Cancel
Save