From e1546328c72b6e406a77bacbbd62ee5d7579a65b Mon Sep 17 00:00:00 2001 From: Grant Shangreaux Date: Tue, 24 Jan 2023 22:28:37 -0600 Subject: Add: navbar and hall-of-heroes list to tavern [frontend] --- model.lisp | 3 +++ pages.lisp | 24 +++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/model.lisp b/model.lisp index f148455..e070f50 100644 --- a/model.lisp +++ b/model.lisp @@ -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 diff --git a/pages.lisp b/pages.lisp index 7f705cd..9900980 100644 --- a/pages.lisp +++ b/pages.lisp @@ -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))))) -- cgit v1.2.3