2017-05-05 16:39:15 +02:00
package router
2017-05-05 03:53:38 +02:00
import (
2017-05-08 01:46:30 +02:00
"net/http"
2017-05-09 13:31:58 +02:00
"net/url"
2017-05-06 23:16:21 +02:00
2017-05-05 14:20:51 +02:00
"github.com/ewhal/nyaa/model"
2017-05-08 05:34:12 +02:00
"github.com/ewhal/nyaa/service/captcha"
2017-05-09 13:31:58 +02:00
"github.com/ewhal/nyaa/service/user"
userForms "github.com/ewhal/nyaa/service/user/form"
"github.com/ewhal/nyaa/util/search"
2017-05-06 10:36:37 +02:00
"github.com/gorilla/mux"
2017-05-05 03:53:38 +02:00
)
2017-05-05 06:07:45 +02:00
/ * Each Page should have an object to pass to their own template
2017-05-05 03:53:38 +02:00
* Therefore , we put them in a separate file for better maintenance
2017-05-05 10:52:08 +02:00
*
* MAIN Template Variables
2017-05-05 06:07:45 +02:00
* /
2017-05-05 03:53:38 +02:00
type FaqTemplateVariables struct {
2017-05-07 01:20:13 +02:00
Navigation Navigation
Search SearchForm
2017-05-09 03:36:48 +02:00
User * model . User
2017-05-05 06:07:45 +02:00
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
2017-05-05 10:52:08 +02:00
}
2017-05-07 08:59:45 +02:00
type NotFoundTemplateVariables struct {
Navigation Navigation
Search SearchForm
2017-05-09 03:36:48 +02:00
User * model . User
2017-05-07 08:59:45 +02:00
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
}
2017-05-05 10:52:08 +02:00
type ViewTemplateVariables struct {
2017-05-06 10:36:37 +02:00
Torrent model . TorrentsJson
2017-05-08 05:34:12 +02:00
Captcha captcha . Captcha
2017-05-07 01:20:13 +02:00
Search SearchForm
Navigation Navigation
2017-05-09 03:36:48 +02:00
User * model . User
2017-05-06 10:36:37 +02:00
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
2017-05-05 03:53:38 +02:00
}
2017-05-07 00:10:40 +02:00
type UserRegisterTemplateVariables struct {
2017-05-07 01:20:13 +02:00
RegistrationForm userForms . RegistrationForm
2017-05-09 13:31:58 +02:00
FormErrors map [ string ] [ ] string
2017-05-07 01:20:13 +02:00
Search SearchForm
Navigation Navigation
2017-05-09 13:31:58 +02:00
User * model . User
2017-05-07 01:20:13 +02:00
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
2017-05-07 00:10:40 +02:00
}
2017-05-07 22:00:45 +02:00
type UserVerifyTemplateVariables struct {
2017-05-09 13:31:58 +02:00
FormErrors map [ string ] [ ] string
Search SearchForm
Navigation Navigation
User * model . User
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
2017-05-07 22:00:45 +02:00
}
2017-05-07 04:02:57 +02:00
type UserLoginFormVariables struct {
2017-05-09 13:31:58 +02:00
LoginForm userForms . LoginForm
FormErrors map [ string ] [ ] string
Search SearchForm
Navigation Navigation
User * model . User
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
2017-05-09 03:36:48 +02:00
}
type UserProfileVariables struct {
2017-05-09 13:31:58 +02:00
UserProfile * model . User
FormErrors map [ string ] [ ] string
Search SearchForm
Navigation Navigation
User * model . User
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
2017-05-07 04:02:57 +02:00
}
2017-05-05 03:53:38 +02:00
type HomeTemplateVariables struct {
2017-05-07 01:20:13 +02:00
ListTorrents [ ] model . TorrentsJson
Search SearchForm
Navigation Navigation
2017-05-09 13:31:58 +02:00
User * model . User
2017-05-07 01:20:13 +02:00
URL * url . URL // For parsing Url in templates
Route * mux . Route // For getting current route in templates
2017-05-05 03:53:38 +02:00
}
2017-05-06 10:36:37 +02:00
type UploadTemplateVariables struct {
Upload UploadForm
2017-05-07 01:20:13 +02:00
Search SearchForm
Navigation Navigation
2017-05-09 03:36:48 +02:00
User * model . User
2017-05-06 10:36:37 +02:00
URL * url . URL
Route * mux . Route
}
2017-05-07 01:20:13 +02:00
/ *
* Variables used by the upper ones
* /
type Navigation struct {
TotalItem int
MaxItemPerPage int
CurrentPage int
Route string
}
type SearchForm struct {
2017-05-09 13:31:58 +02:00
search . SearchParam
2017-05-07 01:20:13 +02:00
Category string
HideAdvancedSearch bool
}
// Some Default Values to ease things out
2017-05-09 13:31:58 +02:00
func NewSearchForm ( ) SearchForm {
return SearchForm {
Category : "_" ,
2017-05-07 01:20:13 +02:00
}
}
2017-05-08 01:46:30 +02:00
2017-05-09 03:36:48 +02:00
func GetUser ( r * http . Request ) * model . User {
2017-05-09 13:31:58 +02:00
user , _ , _ := userService . RetrieveCurrentUser ( r )
2017-05-09 03:36:48 +02:00
return & user
2017-05-08 05:34:12 +02:00
}