diff options
-rw-r--r-- | model.lisp | 3 | ||||
-rw-r--r-- | pages.lisp | 24 |
2 files changed, 26 insertions, 1 deletions
@@ -77,6 +77,9 @@ :documentation "Salt for this hero's password hash.")) (:metaclass db:persistent-class)) +(defun all-heroes () + (db:store-objects-with-class 'hero)) + ;; TODO expiration? (defclass session (db:store-object) ((hero :reader session-hero @@ -31,4 +31,26 @@ (defun tavern (hero) (with-page (:title "A Bustling Tavern") - (:h1 "Aye! Welcome " (hero-name hero)))) + (navbar) + (:h1 "Aye! Welcome " (hero-name hero)) + (:div + :class "heroes-container" + (:h2 "Heroes of rampant renown:") + (hall-of-heroes)))) + +(defun navbar () + (with-html + (:div + :class "navbar" + (:div :class "logo" "DND") + (:ul :class "nav-links" + (:li (:a :href "/hero" "Hero")) + (:li (:a :href "/inventory" "Loot")) + (:li (:a :href "/quests" "Quests")) + (:li (:a :href "/tavern" "Tavern")))))) + +(defun hall-of-heroes () + (with-html + (:ul :class "hall-of-heroes") + (loop for hero in (all-heroes) + collect (:li (hero-name hero) "the" (hero-class hero) (hero-title hero))))) |