ef25eddfd6
* fix #1282 * Update edit.go * Update view.go * Update view.go
60 lignes
2,2 Kio
Go
60 lignes
2,2 Kio
Go
package torrentController
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
"fmt"
|
|
|
|
"github.com/NyaaPantsu/nyaa/controllers/router"
|
|
"github.com/NyaaPantsu/nyaa/models"
|
|
"github.com/NyaaPantsu/nyaa/models/torrents"
|
|
"github.com/NyaaPantsu/nyaa/templates"
|
|
msg "github.com/NyaaPantsu/nyaa/utils/messages"
|
|
"github.com/NyaaPantsu/nyaa/utils/upload"
|
|
"github.com/NyaaPantsu/nyaa/utils/validator/torrent"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// TorrentEditUserPanel : Controller for editing a user torrent by a user, after GET request
|
|
func TorrentEditUserPanel(c *gin.Context) {
|
|
id, _ := strconv.ParseInt(c.Query("id"), 10, 32)
|
|
torrent, _ := torrents.FindByID(uint(id))
|
|
currentUser := router.GetUser(c)
|
|
if currentUser.CurrentOrAdmin(torrent.UploaderID) {
|
|
uploadForm := torrentValidator.TorrentRequest{}
|
|
uploadForm.Name = torrent.Name
|
|
uploadForm.Category = strconv.Itoa(torrent.Category) + "_" + strconv.Itoa(torrent.SubCategory)
|
|
uploadForm.Remake = torrent.Status == models.TorrentStatusRemake
|
|
uploadForm.WebsiteLink = string(torrent.WebsiteLink)
|
|
uploadForm.Description = string(torrent.Description)
|
|
uploadForm.Hidden = torrent.Hidden
|
|
uploadForm.Languages = torrent.Languages
|
|
templates.Form(c, "site/torrents/edit.jet.html", uploadForm)
|
|
} else {
|
|
c.AbortWithStatus(http.StatusNotFound)
|
|
}
|
|
}
|
|
|
|
// TorrentPostEditUserPanel : Controller for editing a user torrent by a user, after post request
|
|
func TorrentPostEditUserPanel(c *gin.Context) {
|
|
var uploadForm torrentValidator.UpdateRequest
|
|
id, _ := strconv.ParseInt(c.Query("id"), 10, 32)
|
|
uploadForm.ID = uint(id)
|
|
messages := msg.GetMessages(c)
|
|
torrent, _ := torrents.FindByID(uint(id))
|
|
currentUser := router.GetUser(c)
|
|
if torrent.ID > 0 && currentUser.CurrentOrAdmin(torrent.UploaderID) {
|
|
errUp := upload.ExtractEditInfo(c, &uploadForm.Update)
|
|
if errUp != nil {
|
|
messages.AddErrorT("errors", "fail_torrent_update")
|
|
}
|
|
if !messages.HasErrors() {
|
|
upload.UpdateTorrent(&uploadForm, torrent, currentUser).Update(currentUser.HasAdmin())
|
|
c.Redirect(http.StatusSeeOther, fmt.Sprintf("/view/%d?success_edit", id))
|
|
return
|
|
}
|
|
templates.Form(c, "site/torrents/edit.jet.html", uploadForm.Update)
|
|
} else {
|
|
c.AbortWithStatus(http.StatusNotFound)
|
|
}
|
|
}
|