Shop improvements

This commit is contained in:
2017-10-04 08:12:12 +02:00
parent aec23d0b6e
commit 16ab79b3a8
13 changed files with 134 additions and 53 deletions

21
pages/charge/charge.go Normal file
View File

@ -0,0 +1,21 @@
package charge
import (
"net/http"
"github.com/animenotifier/notify.moe/components"
"github.com/aerogo/aero"
"github.com/animenotifier/notify.moe/utils"
)
// Get charge page.
func Get(ctx *aero.Context) string {
user := utils.GetUser(ctx)
if user == nil {
return ctx.Error(http.StatusUnauthorized, "Not logged in", nil)
}
return ctx.HTML(components.Charge())
}

3
pages/charge/charge.pixy Normal file
View File

@ -0,0 +1,3 @@
component Charge
ShopTabs
p Coming soon.

View File

@ -0,0 +1,29 @@
package inventory
import (
"net/http"
"github.com/animenotifier/arn"
"github.com/animenotifier/notify.moe/components"
"github.com/aerogo/aero"
"github.com/animenotifier/notify.moe/utils"
)
// Get inventory page.
func Get(ctx *aero.Context) string {
user := utils.GetUser(ctx)
if user == nil {
return ctx.Error(http.StatusUnauthorized, "Not logged in", nil)
}
inventory, err := arn.GetInventory(user.ID)
if err != nil {
return ctx.Error(http.StatusInternalServerError, "Error fetching inventory data", err)
}
return ctx.HTML(components.Inventory(inventory))
}

View File

@ -0,0 +1,7 @@
component Inventory(inventory *arn.Inventory)
ShopTabs
.inventory
each slot in inventory.Slots
.inventory-slot
span= slot.ItemID
p Coming soon.

View File

View File

@ -1,9 +0,0 @@
PRO account for 1 anime season (3 months).
Includes:
* Avatar highlight on the forums
* Customizable cover image for your profile
* Custom title for profile and forums
* Your suggestions will have a high priority
* Access to the VIP channel on Discord

View File

@ -1,21 +1,15 @@
package shop
import (
"io/ioutil"
"net/http"
"github.com/animenotifier/arn"
"github.com/aerogo/aero"
"github.com/animenotifier/notify.moe/components"
"github.com/animenotifier/notify.moe/utils"
)
var proAccount = ""
func init() {
data, _ := ioutil.ReadFile("pages/shop/pro-account.md")
proAccount = string(data)
}
// Get shop page.
func Get(ctx *aero.Context) string {
user := utils.GetUser(ctx)
@ -24,5 +18,7 @@ func Get(ctx *aero.Context) string {
return ctx.Error(http.StatusUnauthorized, "Not logged in", nil)
}
return ctx.HTML(components.Shop(user, proAccount))
items := arn.AllItems()
return ctx.HTML(components.Shop(user, items))
}

View File

@ -1,29 +1,26 @@
component Shop(user *arn.User, proAccountMarkdown string)
component Shop(user *arn.User, items []*arn.Item)
h1.page-title Shop
.user-balance-bar
Icon("diamond")
span.user-balance 0
.tabs
.tab Goods
.tab Top-Up
ShopTabs
.widgets.shop-items
ShopItem("PRO Account", "3 months", "900", "star", proAccountMarkdown)
ShopItem("PRO Account", "6 months", "1700", "star", strings.Replace(strings.Replace(proAccountMarkdown, "3 months", "6 months", 1), "1 anime season", "2 anime seasons", 1))
ShopItem("PRO Account", "1 year", "3000", "star", strings.Replace(strings.Replace(proAccountMarkdown, "3 months", "12 months", 1), "1 anime season", "4 anime seasons", 1))
ShopItem("PRO Account", "2 years", "5900", "star", strings.Replace(strings.Replace(proAccountMarkdown, "3 months", "24 months", 1), "1 anime season", "8 anime seasons", 1))
ShopItem("Anime Support Ticket", "", "100", "ticket", "Support the makers of your favourite anime by using an anime support ticket. Anime Notifier uses 8% of the money to handle the transaction fees while the remaining 92% go directly to the studios involved in the creation of your favourite anime.")
each item in items
ShopItem(item)
component ShopItem(name string, duration string, price string, icon string, description string)
.widget.shop-item
component ShopTabs
.tabs
Tab("Shop", "shopping-cart", "/shop")
Tab("Inventory", "briefcase", "/inventory")
Tab("0", "diamond", "/charge")
component ShopItem(item *arn.Item)
.widget.shop-item.mountable
h3.widget-title.shop-item-name
Icon(icon)
span= name
span.shop-item-duration= " " + duration
.shop-item-description!= aero.Markdown(description)
Icon(item.Icon)
span= item.Name
//- span.shop-item-duration= " " + duration
.shop-item-description!= aero.Markdown(item.Description)
.buttons.shop-buttons
button.shop-button-buy
span.shop-item-price= price
span.shop-item-price= item.Price
Icon("diamond")

View File

@ -25,9 +25,4 @@
.shop-button-buy
.icon-diamond
margin-left 0.3rem
margin-right 0
.user-balance-bar
text-align center
font-size 2.5rem
margin-bottom 2rem
margin-right 0