Refactor templates to make take care of fmt

This commit is contained in:
Las Zenow 2014-08-30 01:25:16 -05:00
parent e81df155a2
commit c132c0fdf6
11 changed files with 51 additions and 59 deletions

View file

@ -3,11 +3,12 @@ package main
import log "github.com/cihub/seelog" import log "github.com/cihub/seelog"
import ( import (
"git.gitorious.org/trantor/trantor.git/database"
"github.com/gorilla/mux"
"net/http" "net/http"
"strconv" "strconv"
"strings" "strings"
"git.gitorious.org/trantor/trantor.git/database"
"github.com/gorilla/mux"
) )
func deleteHandler(h handler) { func deleteHandler(h handler) {
@ -59,7 +60,7 @@ func editHandler(h handler) {
var data bookData var data bookData
data.Book = book data.Book = book
data.S = GetStatus(h) data.S = GetStatus(h)
loadTemplate(h.w, "edit", data) loadTemplate(h, "edit", data)
} }
func cleanEmptyStr(s []string) []string { func cleanEmptyStr(s []string) []string {
@ -162,7 +163,7 @@ func newHandler(h handler) {
if page > 0 { if page > 0 {
data.Prev = "/new/?p=" + strconv.Itoa(page-1) data.Prev = "/new/?p=" + strconv.Itoa(page-1)
} }
loadTemplate(h.w, "new", data) loadTemplate(h, "new", data)
} }
func storeHandler(h handler) { func storeHandler(h handler) {

12
news.go
View file

@ -1,8 +1,9 @@
package main package main
import ( import (
"git.gitorious.org/trantor/trantor.git/database"
"net/http" "net/http"
"git.gitorious.org/trantor/trantor.git/database"
) )
type newsData struct { type newsData struct {
@ -27,12 +28,7 @@ func newsHandler(h handler) {
data.S.News = true data.S.News = true
data.News = getNews(NUM_NEWS, 0, h.db) data.News = getNews(NUM_NEWS, 0, h.db)
format := h.r.Form["fmt"] loadTemplate(h, "news", data)
if (len(format) > 0) && (format[0] == "rss") {
loadTxtTemplate(h.w, "news_rss.xml", data)
} else {
loadTemplate(h.w, "news", data)
}
} }
func editNewsHandler(h handler) { func editNewsHandler(h handler) {
@ -44,7 +40,7 @@ func editNewsHandler(h handler) {
var data statusData var data statusData
data.S = GetStatus(h) data.S = GetStatus(h)
data.S.News = true data.S.News = true
loadTemplate(h.w, "edit_news", data) loadTemplate(h, "edit_news", data)
} }
func postNewsHandler(h handler) { func postNewsHandler(h handler) {

View file

@ -170,7 +170,7 @@ func readHandler(h handler) {
data.Next, data.Prev = getNextPrev(e, file, id, "/read/") data.Next, data.Prev = getNextPrev(e, file, id, "/read/")
data.Chapters = getChapters(e, file, id, "/read/") data.Chapters = getChapters(e, file, id, "/read/")
data.Content = genLink(id, "/content/", file) data.Content = genLink(id, "/content/", file)
loadTemplate(h.w, "read", data) loadTemplate(h, "read", data)
} }
func openReadEpub(h handler) (*epubgo.Epub, database.Book) { func openReadEpub(h handler) (*epubgo.Epub, database.Book) {

View file

@ -1,10 +1,11 @@
package main package main
import ( import (
"git.gitorious.org/trantor/trantor.git/database"
"net/http" "net/http"
"strconv" "strconv"
"strings" "strings"
"git.gitorious.org/trantor/trantor.git/database"
) )
type searchData struct { type searchData struct {
@ -48,12 +49,7 @@ func searchHandler(h handler) {
data.Prev = "/search/?q=" + req + "&p=" + strconv.Itoa(page-1) + "&num=" + strconv.Itoa(items_page) data.Prev = "/search/?q=" + req + "&p=" + strconv.Itoa(page-1) + "&num=" + strconv.Itoa(items_page)
} }
format := h.r.Form["fmt"] loadTemplate(h, "search", data)
if (len(format) > 0) && (format[0] == "rss") {
loadTxtTemplate(h.w, "search_rss.xml", data)
} else {
loadTemplate(h.w, "search", data)
}
} }
func itemsPage(r *http.Request) int { func itemsPage(r *http.Request) int {

View file

@ -3,13 +3,14 @@ package main
import log "github.com/cihub/seelog" import log "github.com/cihub/seelog"
import ( import (
"git.gitorious.org/trantor/trantor.git/database"
"git.gitorious.org/trantor/trantor.git/storage"
"github.com/gorilla/mux"
"net/http" "net/http"
"strconv" "strconv"
"strings" "strings"
"time" "time"
"git.gitorious.org/trantor/trantor.git/database"
"git.gitorious.org/trantor/trantor.git/storage"
"github.com/gorilla/mux"
) )
const ( const (
@ -93,7 +94,7 @@ func statsHandler(h handler) {
data.DDownloads = getVisits(dailyLabel, h.db, database.Daily_downloads) data.DDownloads = getVisits(dailyLabel, h.db, database.Daily_downloads)
data.MDownloads = getVisits(monthlyLabel, h.db, database.Monthly_downloads) data.MDownloads = getVisits(monthlyLabel, h.db, database.Monthly_downloads)
loadTemplate(h.w, "stats", data) loadTemplate(h, "stats", data)
} }
type statsData struct { type statsData struct {

View file

@ -1,12 +1,10 @@
package main package main
import ( import log "github.com/cihub/seelog"
"html/template"
"net/http"
)
import txt_tmpl "text/template" import txt_tmpl "text/template"
import "html/template"
type Status struct { type Status struct {
BaseURL string BaseURL string
FullURL string FullURL string
@ -34,7 +32,7 @@ func GetStatus(h handler) Status {
return s return s
} }
var templates = template.Must(template.ParseFiles(TEMPLATE_PATH+"header.html", var tmpl_html = template.Must(template.ParseFiles(TEMPLATE_PATH+"header.html",
TEMPLATE_PATH+"footer.html", TEMPLATE_PATH+"footer.html",
TEMPLATE_PATH+"404.html", TEMPLATE_PATH+"404.html",
TEMPLATE_PATH+"index.html", TEMPLATE_PATH+"index.html",
@ -54,22 +52,20 @@ var templates = template.Must(template.ParseFiles(TEMPLATE_PATH+"header.html",
TEMPLATE_PATH+"help.html", TEMPLATE_PATH+"help.html",
)) ))
func loadTemplate(w http.ResponseWriter, tmpl string, data interface{}) { var tmpl_rss = txt_tmpl.Must(txt_tmpl.ParseFiles(TEMPLATE_PATH+"search.rss",
err := templates.ExecuteTemplate(w, tmpl+".html", data) TEMPLATE_PATH+"news.rss",
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
var txt_templates = txt_tmpl.Must(txt_tmpl.ParseFiles(TEMPLATE_PATH+"search_rss.xml",
TEMPLATE_PATH+"news_rss.xml",
)) ))
func loadTxtTemplate(w http.ResponseWriter, tmpl string, data interface{}) { func loadTemplate(h handler, tmpl string, data interface{}) {
err := txt_templates.ExecuteTemplate(w, tmpl, data) var err error
fmt := h.r.FormValue("fmt")
if fmt == "rss" {
err = tmpl_rss.ExecuteTemplate(h.w, tmpl+".rss", data)
} else {
err = tmpl_html.ExecuteTemplate(h.w, tmpl+".html", data)
}
if err != nil { if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError) tmpl_html.ExecuteTemplate(h.w, "404.html", data)
return log.Warn("An error ocurred loading the template ", tmpl, ".", fmt, ": ", err)
} }
} }

View file

@ -3,13 +3,14 @@ package main
import log "github.com/cihub/seelog" import log "github.com/cihub/seelog"
import ( import (
"git.gitorious.org/trantor/trantor.git/database"
"git.gitorious.org/trantor/trantor.git/storage"
"github.com/gorilla/mux"
"io" "io"
"net/http" "net/http"
"os" "os"
"strings" "strings"
"git.gitorious.org/trantor/trantor.git/database"
"git.gitorious.org/trantor/trantor.git/storage"
"github.com/gorilla/mux"
) )
type statusData struct { type statusData struct {
@ -20,14 +21,14 @@ func aboutHandler(h handler) {
var data statusData var data statusData
data.S = GetStatus(h) data.S = GetStatus(h)
data.S.About = true data.S.About = true
loadTemplate(h.w, "about", data) loadTemplate(h, "about", data)
} }
func helpHandler(h handler) { func helpHandler(h handler) {
var data statusData var data statusData
data.S = GetStatus(h) data.S = GetStatus(h)
data.S.Help = true data.S.Help = true
loadTemplate(h.w, "help", data) loadTemplate(h, "help", data)
} }
func logoutHandler(h handler) { func logoutHandler(h handler) {
@ -55,7 +56,7 @@ func bookHandler(h handler) {
} }
data.Book = book data.Book = book
data.Description = strings.Split(data.Book.Description, "\n") data.Description = strings.Split(data.Book.Description, "\n")
loadTemplate(h.w, "book", data) loadTemplate(h, "book", data)
} }
func downloadHandler(h handler) { func downloadHandler(h handler) {
@ -107,7 +108,7 @@ func indexHandler(h handler) {
data.VisitedBooks, _ = h.db.GetVisitedBooks() data.VisitedBooks, _ = h.db.GetVisitedBooks()
data.DownloadedBooks, _ = h.db.GetDownloadedBooks() data.DownloadedBooks, _ = h.db.GetDownloadedBooks()
data.News = getNews(1, DAYS_NEWS_INDEXPAGE, h.db) data.News = getNews(1, DAYS_NEWS_INDEXPAGE, h.db)
loadTemplate(h.w, "index", data) loadTemplate(h, "index", data)
} }
func notFound(h handler) { func notFound(h handler) {
@ -115,7 +116,7 @@ func notFound(h handler) {
data.S = GetStatus(h) data.S = GetStatus(h)
h.w.WriteHeader(http.StatusNotFound) h.w.WriteHeader(http.StatusNotFound)
loadTemplate(h.w, "404", data) loadTemplate(h, "404", data)
} }
func updateLogger() error { func updateLogger() error {

View file

@ -6,13 +6,14 @@ import (
"bytes" "bytes"
"crypto/rand" "crypto/rand"
"encoding/base64" "encoding/base64"
"git.gitorious.org/go-pkg/epubgo.git"
"git.gitorious.org/trantor/trantor.git/database"
"git.gitorious.org/trantor/trantor.git/storage"
"io/ioutil" "io/ioutil"
"mime/multipart" "mime/multipart"
"regexp" "regexp"
"strings" "strings"
"git.gitorious.org/go-pkg/epubgo.git"
"git.gitorious.org/trantor/trantor.git/database"
"git.gitorious.org/trantor/trantor.git/storage"
) )
func InitUpload(database *database.DB, store *storage.Store) { func InitUpload(database *database.DB, store *storage.Store) {
@ -93,7 +94,7 @@ func uploadHandler(h handler) {
var data uploadData var data uploadData
data.S = GetStatus(h) data.S = GetStatus(h)
data.S.Upload = true data.S.Upload = true
loadTemplate(h.w, "upload", data) loadTemplate(h, "upload", data)
} }
type uploadData struct { type uploadData struct {

View file

@ -14,7 +14,7 @@ func loginHandler(h handler) {
var data statusData var data statusData
data.S = GetStatus(h) data.S = GetStatus(h)
loadTemplate(h.w, "login", data) loadTemplate(h, "login", data)
} }
func loginPostHandler(h handler) { func loginPostHandler(h handler) {
@ -59,7 +59,7 @@ func dashboardHandler(h handler) {
var data statusData var data statusData
data.S = GetStatus(h) data.S = GetStatus(h)
data.S.Dasboard = true data.S.Dasboard = true
loadTemplate(h.w, "dashboard", data) loadTemplate(h, "dashboard", data)
} }
func settingsHandler(h handler) { func settingsHandler(h handler) {
@ -85,5 +85,5 @@ func settingsHandler(h handler) {
var data statusData var data statusData
data.S = GetStatus(h) data.S = GetStatus(h)
loadTemplate(h.w, "settings", data) loadTemplate(h, "settings", data)
} }