|
|
|
@ -19,12 +19,13 @@ import ( |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
const ( |
|
|
|
|
WIKI_START base.TplName = "repo/wiki/start" |
|
|
|
|
WIKI_VIEW base.TplName = "repo/wiki/view" |
|
|
|
|
WIKI_NEW base.TplName = "repo/wiki/new" |
|
|
|
|
WIKI_PAGES base.TplName = "repo/wiki/pages" |
|
|
|
|
tplWikiStart base.TplName = "repo/wiki/start" |
|
|
|
|
tplWikiView base.TplName = "repo/wiki/view" |
|
|
|
|
tplWikiNew base.TplName = "repo/wiki/new" |
|
|
|
|
tplWikiPages base.TplName = "repo/wiki/pages" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
// MustEnableWiki check if wiki is enabled, if external then redirect
|
|
|
|
|
func MustEnableWiki(ctx *context.Context) { |
|
|
|
|
if !ctx.Repo.Repository.EnableWiki { |
|
|
|
|
ctx.Handle(404, "MustEnableWiki", nil) |
|
|
|
@ -37,6 +38,7 @@ func MustEnableWiki(ctx *context.Context) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// PageMeta wiki page meat information
|
|
|
|
|
type PageMeta struct { |
|
|
|
|
Name string |
|
|
|
|
URL string |
|
|
|
@ -115,12 +117,13 @@ func renderWikiPage(ctx *context.Context, isViewPage bool) (*git.Repository, str |
|
|
|
|
return wikiRepo, pageName |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Wiki render wiki page
|
|
|
|
|
func Wiki(ctx *context.Context) { |
|
|
|
|
ctx.Data["PageIsWiki"] = true |
|
|
|
|
|
|
|
|
|
if !ctx.Repo.Repository.HasWiki() { |
|
|
|
|
ctx.Data["Title"] = ctx.Tr("repo.wiki") |
|
|
|
|
ctx.HTML(200, WIKI_START) |
|
|
|
|
ctx.HTML(200, tplWikiStart) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -137,9 +140,10 @@ func Wiki(ctx *context.Context) { |
|
|
|
|
} |
|
|
|
|
ctx.Data["Author"] = lastCommit.Author |
|
|
|
|
|
|
|
|
|
ctx.HTML(200, WIKI_VIEW) |
|
|
|
|
ctx.HTML(200, tplWikiView) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// WikiPages render wiki pages list page
|
|
|
|
|
func WikiPages(ctx *context.Context) { |
|
|
|
|
ctx.Data["Title"] = ctx.Tr("repo.wiki.pages") |
|
|
|
|
ctx.Data["PageIsWiki"] = true |
|
|
|
@ -183,9 +187,10 @@ func WikiPages(ctx *context.Context) { |
|
|
|
|
} |
|
|
|
|
ctx.Data["Pages"] = pages |
|
|
|
|
|
|
|
|
|
ctx.HTML(200, WIKI_PAGES) |
|
|
|
|
ctx.HTML(200, tplWikiPages) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// NewWiki render wiki create page
|
|
|
|
|
func NewWiki(ctx *context.Context) { |
|
|
|
|
ctx.Data["Title"] = ctx.Tr("repo.wiki.new_page") |
|
|
|
|
ctx.Data["PageIsWiki"] = true |
|
|
|
@ -195,23 +200,24 @@ func NewWiki(ctx *context.Context) { |
|
|
|
|
ctx.Data["title"] = "Home" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ctx.HTML(200, WIKI_NEW) |
|
|
|
|
ctx.HTML(200, tplWikiNew) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// NewWikiPost response fro wiki create request
|
|
|
|
|
func NewWikiPost(ctx *context.Context, form auth.NewWikiForm) { |
|
|
|
|
ctx.Data["Title"] = ctx.Tr("repo.wiki.new_page") |
|
|
|
|
ctx.Data["PageIsWiki"] = true |
|
|
|
|
ctx.Data["RequireSimpleMDE"] = true |
|
|
|
|
|
|
|
|
|
if ctx.HasError() { |
|
|
|
|
ctx.HTML(200, WIKI_NEW) |
|
|
|
|
ctx.HTML(200, tplWikiNew) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err := ctx.Repo.Repository.AddWikiPage(ctx.User, form.Title, form.Content, form.Message); err != nil { |
|
|
|
|
if models.IsErrWikiAlreadyExist(err) { |
|
|
|
|
ctx.Data["Err_Title"] = true |
|
|
|
|
ctx.RenderWithErr(ctx.Tr("repo.wiki.page_already_exists"), WIKI_NEW, &form) |
|
|
|
|
ctx.RenderWithErr(ctx.Tr("repo.wiki.page_already_exists"), tplWikiNew, &form) |
|
|
|
|
} else { |
|
|
|
|
ctx.Handle(500, "AddWikiPage", err) |
|
|
|
|
} |
|
|
|
@ -221,6 +227,7 @@ func NewWikiPost(ctx *context.Context, form auth.NewWikiForm) { |
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/wiki/" + models.ToWikiPageURL(form.Title)) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// EditWiki render wiki modify page
|
|
|
|
|
func EditWiki(ctx *context.Context) { |
|
|
|
|
ctx.Data["PageIsWiki"] = true |
|
|
|
|
ctx.Data["PageIsWikiEdit"] = true |
|
|
|
@ -236,16 +243,17 @@ func EditWiki(ctx *context.Context) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ctx.HTML(200, WIKI_NEW) |
|
|
|
|
ctx.HTML(200, tplWikiNew) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// EditWikiPost response fro wiki modify request
|
|
|
|
|
func EditWikiPost(ctx *context.Context, form auth.NewWikiForm) { |
|
|
|
|
ctx.Data["Title"] = ctx.Tr("repo.wiki.new_page") |
|
|
|
|
ctx.Data["PageIsWiki"] = true |
|
|
|
|
ctx.Data["RequireSimpleMDE"] = true |
|
|
|
|
|
|
|
|
|
if ctx.HasError() { |
|
|
|
|
ctx.HTML(200, WIKI_NEW) |
|
|
|
|
ctx.HTML(200, tplWikiNew) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -257,6 +265,7 @@ func EditWikiPost(ctx *context.Context, form auth.NewWikiForm) { |
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/wiki/" + models.ToWikiPageURL(form.Title)) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// DeleteWikiPagePost delete wiki page
|
|
|
|
|
func DeleteWikiPagePost(ctx *context.Context) { |
|
|
|
|
pageURL := ctx.Params(":page") |
|
|
|
|
if len(pageURL) == 0 { |
|
|
|
|