Compare commits

...

1 Commits

Author SHA1 Message Date
wonderful 07ea81beda fix:editWiki 2021-08-20 14:11:47 +08:00
2 changed files with 14 additions and 20 deletions

View File

@ -8,6 +8,7 @@ package wikies
import (
"fmt"
"net/http"
"code.gitea.io/gitea/models"
repo_module "code.gitea.io/gitea/modules/repository"
@ -288,14 +289,19 @@ func NewWikiPost(ctx *context.APIContext, form api.WikiOption) {
//ctx.Redirect(ctx.Repo.RepoLink + "/wiki/" + wiki_service.NameToSubURL(wikiName))
}
func EditWikiPost(ctx *context.APIContext, form api.WikiOption) {
ctx.Data["Title"] = ctx.Tr("repo.wiki.new_page")
ctx.Data["PageIsWiki"] = true
ctx.Data["RequireSimpleMDE"] = true
oldWikiName := wiki_service.NormalizeWikiName(ctx.Params(":page"))
newWikiName := wiki_service.NormalizeWikiName(form.Name)
//newWikiName, _= url.QueryUnescape(newWikiName)
_, commit, _ := FindWikiRepoCommit(ctx)
if _, _, _, noEntry := WikiContentsByName(ctx, commit, newWikiName); oldWikiName != newWikiName && !noEntry {
ctx.Error(http.StatusConflict, "WikiNameAlreadyExist", "wiki名称已存在")
return
}
if len(form.CommitMessage) == 0 {
form.CommitMessage = ctx.Tr("repo.editor.update", form.Name)

View File

@ -330,38 +330,26 @@ func EditWiki(ctx *context.APIContext, form api.WikiOption) {
// "201":
// "$ref": "#/responses/Wiki"
oldWikiName := wiki_service.NormalizeWikiName(ctx.Params(":page"))
//Determine the byte size
newWikiName := wiki_service.NormalizeWikiName(form.Name)
err1 := wiki_service.CheckFile(newWikiName)
if err1 != nil {
ctx.FileNameError()
return
}
wikiRepo, commit, _ := wikies.FindWikiRepoCommit(ctx)
wikies.EditWikiPost(ctx,form)
wikiRepo, commit1, _ := wikies.FindWikiRepoCommit(ctx)
data, entry, pageFilename, _ := wikies.WikiContentsByName(ctx, commit1,form.Name)
if _, _, _, noEntry := wikies.WikiContentsByName(ctx, commit, newWikiName); oldWikiName != newWikiName && !noEntry {
ctx.Error(http.StatusConflict, "WikiNameAlreadyExist", "wiki名称已存在")
return
}
if len(form.CommitMessage) == 0 {
form.CommitMessage = ctx.Tr("repo.editor.update", form.Name)
}
if err := wiki_service.EditWikiPage(ctx.User, ctx.Repo.Repository, oldWikiName, newWikiName, form.Content, form.CommitMessage); err != nil {
ctx.Error(http.StatusInternalServerError, "EditWikiPage", err)
return
}
data, entry, pageFilename, _ := wikies.WikiContentsByName(ctx, commit, form.Name)
c, err := wikiRepo.GetCommitByPath(entry.Name())
if err != nil {
if models.IsErrWikiInvalidFileName(err) {
return
}
}
commitsCount, _ := wikiRepo.FileCommitsCount("master", pageFilename)
metas := ctx.Repo.Repository.ComposeDocumentMetas()
PageContent := markdown.RenderWiki(data, ctx.Repo.RepoLink, metas)
commitsCount, _ := wikiRepo.FileCommitsCount("master", pageFilename)
wiki := api.WikiResponse{
WikiMeta: api.WikiMeta{