first working version
This commit is contained in:
parent
14e0611f06
commit
85f93bae69
32 changed files with 863 additions and 571 deletions
|
|
@ -1,12 +1,13 @@
|
|||
// Copyright (C) 2017 Marius Schellenberger
|
||||
// Copyright (C) 2018 Marius Schellenberger
|
||||
|
||||
// This file is auto-generated by build/templates.sh
|
||||
// This file is auto-generated by templates.sh
|
||||
// using the contents of the templates directory
|
||||
|
||||
package server
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"git.giftfish.de/ston1th/gowiki/pkg/log"
|
||||
"html/template"
|
||||
)
|
||||
|
||||
|
|
@ -21,7 +22,7 @@ const (
|
|||
<ul type="circle">
|
||||
{{if .Data}}
|
||||
{{range $item := .Data}}
|
||||
<li><a href="/wiki/{{$item.LinkTitle}}"><b>{{$item.Title}}</b></a></li>
|
||||
<li><a href="/{{$item.StoreTitle}}"><b>{{$item.Title}}</b></a></li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</ul>
|
||||
|
|
@ -118,16 +119,13 @@ const (
|
|||
Index
|
||||
</a></li>
|
||||
<li><a href="/all">
|
||||
All Articles
|
||||
All Pages
|
||||
</a></li>
|
||||
{{if .Login}}
|
||||
<li><a href="/new">
|
||||
New Article
|
||||
New Page
|
||||
</a></li>
|
||||
{{end}}
|
||||
<li><a href="/snippets">
|
||||
Snippets
|
||||
</a></li>
|
||||
</ul>
|
||||
<form class="navbar-form navbar-left menu-search-bar" role="search" method="post" action="/search">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
|
|
@ -143,7 +141,7 @@ const (
|
|||
<ul class="nav navbar-nav navbar-right">
|
||||
{{if .Login}}
|
||||
{{if .Admin}}
|
||||
<li><a href="/users">
|
||||
<li><a href="/user">
|
||||
Users
|
||||
</a></li>
|
||||
{{else}}
|
||||
|
|
@ -177,6 +175,217 @@ const (
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}`
|
||||
pageDel = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-xs-offset-4">
|
||||
<div class="panel panel-danger">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Delete {{.Data}}</h3>
|
||||
</div>
|
||||
<form class="form-horizontal" action="/{{.Data}}/del" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<button class="btn btn-sm btn-danger lg-pull-right" type="submit">Delete</button>
|
||||
</form>
|
||||
<div class="panel-body text-center">
|
||||
<a href="/{{.Data}}" class="btn btn-sm btn-primary">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}`
|
||||
pageEdit = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="/{{.Data.StoreTitle}}/edit" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<input type="hidden" name="store_title" value="{{if .Data}}{{.Data.StoreTitle}}{{end}}">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Title</label>
|
||||
<div class="col-xs-11">
|
||||
<input class="form-control input-sm" type="text" value="{{if .Data}}{{.Data.Title}}{{end}}" spellcheck="false" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Markdown</label>
|
||||
<div class="col-xs-11">
|
||||
<textarea class="form-control input-sm md-text" rows="30" name="markdown" spellcheck="false" autofocus>{{if .Data}}{{.Data.Markdown}}{{end}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11">
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm1" name="perm" value="1" class="custom-control-input" checked="">
|
||||
<label class="custom-control-label" for="perm1">Public</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm2" name="perm" value="2" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm2">Internal</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm3" name="perm" value="3" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm3">Private</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11 col-xs-offset-1">
|
||||
<button class="btn btn-sm btn-primary" type="submit">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
{{end}}`
|
||||
page = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<strong>Created by:</strong> {{.Data.Created}}<br>
|
||||
{{if .Data.Updated}}
|
||||
<strong>Updated by:</strong> {{.Data.Updated}}{{end}}
|
||||
<br><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
{{.Data.PageIndex}}
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
{{if .Login}}
|
||||
<div class="row" style="padding-bottom: 14px">
|
||||
<div class="col-xs-6 {{if ne .Data.StoreTitle "wiki/Index"}}col-xs-offset-4{{else}}col-xs-offset-6{{end}}">
|
||||
<a href="/{{.Data.StoreTitle}}/edit" class="btn btn-sm btn-primary lg-pull-right">Edit</a>
|
||||
</div>
|
||||
{{if ne .Data.StoreTitle "wiki/Index"}}
|
||||
<div class="col-xs-2">
|
||||
<a href="/{{.Data.StoreTitle}}/del" class="btn btn-sm btn-primary lg-pull-right">Delete</a>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-xs-offset-6">
|
||||
<a href="/{{.Data.StoreTitle}}/md" class="btn btn-sm btn-primary lg-pull-right">Markdown</a>
|
||||
</div>
|
||||
{{if .Login}}
|
||||
<div class="col-xs-6 col-xs-offset-6">
|
||||
<a href="/{{.Data.StoreTitle}}/share" class="btn btn-sm btn-primary lg-pull-right">Share</a>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{.Data.HTML}}
|
||||
{{end}}`
|
||||
pageMD = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<textarea class="form-control input-sm md-text" rows="30" spellcheck="false" autofocus>{{if .Data}}{{.Data.Markdown}}{{end}}</textarea>
|
||||
{{end}}`
|
||||
pageNew = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="/new" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Section</label>
|
||||
<div class="col-xs-11">
|
||||
<select class="form-control input-sm" name="section" autofocus required>
|
||||
<option>wiki</option>
|
||||
<option>{{.User}}</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-xs-1 control-label">Title</label>
|
||||
<div class="col-xs-11">
|
||||
<input class="form-control input-sm" type="text" placeholder="Title" name="title" value="{{if .Data}}{{.Data.Title}}{{end}}" spellcheck="false" autofocus required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Markdown</label>
|
||||
<div class="col-xs-11">
|
||||
<textarea class="form-control input-sm md-text" rows="30" name="markdown" spellcheck="false">{{if .Data}}{{.Data.Markdown}}{{end}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11">
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm1" name="perm" value="1" class="custom-control-input" checked="">
|
||||
<label class="custom-control-label" for="perm1">Public</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm2" name="perm" value="2" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm2">Internal</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm3" name="perm" value="3" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm3">Private</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11 col-xs-offset-1">
|
||||
<button class="btn btn-sm btn-primary" type="submit">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
{{end}}`
|
||||
pageShare = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-xs-offset-4">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">Share {{.Data}}</h3>
|
||||
</div>
|
||||
<div class="panel-body text-center">
|
||||
<a href="/view/{{.Key}}">Share Link</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}`
|
||||
pageView = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<strong>Created by:</strong> {{.Data.Created}}<br>
|
||||
{{if .Data.Updated}}
|
||||
<strong>Updated by:</strong> {{.Data.Updated}}{{end}}
|
||||
<br><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
{{.Data.PageIndex}}
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-xs-offset-6">
|
||||
<a href="/view/{{.Key}}/md" class="btn btn-sm btn-primary lg-pull-right">Markdown</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{.Data.HTML}}
|
||||
{{end}}`
|
||||
search = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
|
|
@ -202,8 +411,9 @@ const (
|
|||
</form>
|
||||
</div>
|
||||
<div class="row col-xs-12">
|
||||
{{if .Data}}
|
||||
{{.Data}}
|
||||
{{range $item := .Data}}
|
||||
<a href="/{{$item.StireTitle}}"><b>{{$item.Title}}</b></a>
|
||||
<pre style="white-space:pre-wrap">{{$item.Text}}</pre><br>
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}`
|
||||
|
|
@ -294,48 +504,7 @@ const (
|
|||
{{end}}
|
||||
{{end}}
|
||||
{{end}}`
|
||||
userNew = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="/user/new" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Username</label>
|
||||
<div class="col-lg-6">
|
||||
<input class="form-control input-sm" type="text" name="user" value required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Password</label>
|
||||
<div class="col-lg-6">
|
||||
<input class="form-control input-sm" type="password" name="password" value required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Repeat</label>
|
||||
<div class="col-lg-6">
|
||||
<input class="form-control input-sm" type="password" name="repeat" value required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Admin Privileges</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="checkbox" name="admin" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-6 col-lg-offset-3">
|
||||
<button class="btn btn-sm btn-primary" type="submit" name="submit" value="Submit">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
{{end}}`
|
||||
users = `{{define "body"}}
|
||||
user = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
|
|
@ -386,151 +555,45 @@ const (
|
|||
{{end}}
|
||||
</div>
|
||||
{{end}}`
|
||||
wikiEdit = `{{define "body"}}
|
||||
{{if .Editor}}
|
||||
<div class="alert alert-warning" style="margin-top:30px">
|
||||
<h4>Warning!</h4>
|
||||
<p><strong>{{.Editor.Username}}</strong> is editing this page since {{.Editor.Time}}</p>
|
||||
</div>
|
||||
{{end}}
|
||||
userNew = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="/wiki/{{.Data.LinkTitle}}/edit" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<input type="hidden" name="title" value="{{if .Data}}{{.Data.Title}}{{end}}">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Title</label>
|
||||
<div class="col-xs-11">
|
||||
<input class="form-control input-sm" type="text" value="{{if .Data}}{{.Data.Title}}{{end}}" spellcheck="false" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Text</label>
|
||||
<div class="col-xs-11">
|
||||
<textarea class="form-control input-sm md-text" rows="30" name="text" spellcheck="false" autofocus>{{if .Data}}{{.Data.MD}}{{end}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11">
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm1" name="perm" value="0" class="custom-control-input" checked="">
|
||||
<label class="custom-control-label" for="perm1">Public</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm2" name="perm" value="1" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm2">Internal</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm3" name="perm" value="2" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm3">Private</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11 col-xs-offset-1">
|
||||
<button class="btn btn-sm btn-primary" type="submit" name="submit" value="Submit">Submit</button>
|
||||
<button class="btn btn-sm btn-default" type="submit" name="submit" value="Back">Back</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
{{end}}`
|
||||
wiki = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<strong>Created by:</strong> {{.Data.Created}}<br>
|
||||
{{if .Data.Updated}}
|
||||
<strong>Updated by:</strong> {{.Data.Updated}}{{end}}
|
||||
<br><br>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
{{.Data.Index}}
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
{{if .Login}}
|
||||
<div class="row" style="padding-bottom: 14px">
|
||||
<div class="col-xs-6 {{if ne .Data.LinkTitle "Index"}}col-xs-offset-4{{else}}col-xs-offset-6{{end}}">
|
||||
<a href="/wiki/{{.Data.LinkTitle}}/edit" class="btn btn-sm btn-primary lg-pull-right">Edit</a>
|
||||
</div>
|
||||
{{if ne .Data.LinkTitle "Index"}}
|
||||
<div class="col-xs-2">
|
||||
<form class="form-horizontal" action="/wiki/{{.Data.LinkTitle}}/del" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<button class="btn btn-sm btn-danger lg-pull-right" type="submit" name="submit" value="Delete">Delete</button>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="row">
|
||||
<div class="col-xs-6 col-xs-offset-6">
|
||||
<a href="/wiki/{{.Data.LinkTitle}}/md" class="btn btn-sm btn-primary lg-pull-right">Markdown</a>
|
||||
</div>
|
||||
<form class="form-horizontal" action="/user/new" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Username</label>
|
||||
<div class="col-lg-6">
|
||||
<input class="form-control input-sm" type="text" name="user" value required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{.Data.Text}}
|
||||
{{end}}`
|
||||
wikiMD = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Password</label>
|
||||
<div class="col-lg-6">
|
||||
<input class="form-control input-sm" type="password" name="password" value required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<textarea class="form-control input-sm md-text" rows="30" spellcheck="false" autofocus>{{if .Data}}{{.Data.MD}}{{end}}</textarea>
|
||||
{{end}}`
|
||||
wikiNew = `{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Repeat</label>
|
||||
<div class="col-lg-6">
|
||||
<input class="form-control input-sm" type="password" name="repeat" value required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form class="form-horizontal" action="/new" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Title</label>
|
||||
<div class="col-xs-11">
|
||||
<input class="form-control input-sm" type="text" placeholder="Title" name="title" value="{{if .Data}}{{.Data.Title}}{{end}}" spellcheck="false" autofocus required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-3 control-label">Admin Privileges</label>
|
||||
<div class="col-lg-6">
|
||||
<input type="checkbox" name="admin" value="0">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-1 control-label">Text</label>
|
||||
<div class="col-xs-11">
|
||||
<textarea class="form-control input-sm md-text" rows="30" name="text" spellcheck="false">{{if .Data}}{{.Data.MD}}{{end}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-6 col-lg-offset-3">
|
||||
<button class="btn btn-sm btn-primary" type="submit" name="submit" value="Submit">Submit</button>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11">
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm1" name="perm" value="0" class="custom-control-input" checked="">
|
||||
<label class="custom-control-label" for="perm1">Public</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm2" name="perm" value="1" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm2">Internal</label>
|
||||
</div>
|
||||
<div class="custom-control custom-radio">
|
||||
<input type="radio" id="perm3" name="perm" value="2" class="custom-control-input">
|
||||
<label class="custom-control-label" for="perm3">Private</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-11 col-xs-offset-1">
|
||||
<button class="btn btn-sm btn-primary" type="submit" name="submit" value="Submit">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
{{end}}`
|
||||
bootstrapCSS = `@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");/*!
|
||||
|
|
@ -693,12 +756,15 @@ func (s *HTTPServer) loadTemplates() {
|
|||
s.templ["loginHandler"] = parse(index, menu, login)
|
||||
s.templ["searchHandler"] = parse(index, menu, search)
|
||||
s.templ["allHandler"] = parse(index, menu, all)
|
||||
s.templ["wikiNewHandler"] = parse(index, menu, wikiNew)
|
||||
s.templ["wikiEditHandler"] = parse(index, menu, wikiEdit)
|
||||
s.templ["wikiHandler"] = parse(index, menu, wiki)
|
||||
s.templ["wikiMDHandler"] = parse(index, menu, wikiMD)
|
||||
s.templ["pageHandler"] = parse(index, menu, page)
|
||||
s.templ["pageNewHandler"] = parse(index, menu, pageNew)
|
||||
s.templ["pageEditHandler"] = parse(index, menu, pageEdit)
|
||||
s.templ["pageViewHandler"] = parse(index, menu, pageView)
|
||||
s.templ["pageMDHandler"] = parse(index, menu, pageMD)
|
||||
s.templ["pageShareHandler"] = parse(index, menu, pageShare)
|
||||
s.templ["pageDelHandler"] = parse(index, menu, pageDel)
|
||||
// users.go
|
||||
s.templ["usersHandler"] = parse(index, menu, users)
|
||||
s.templ["userHandler"] = parse(index, menu, user)
|
||||
s.templ["userNewHandler"] = parse(index, menu, userNew)
|
||||
s.templ["userEditHandler"] = parse(index, menu, userEdit)
|
||||
s.templ["userDelHandler"] = parse(index, menu, userDel)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue