diff options
| author | Scott Ostler <scottbot9000@gmail.com> | 2010-06-22 04:53:56 -0400 |
|---|---|---|
| committer | Scott Ostler <scottbot9000@gmail.com> | 2010-06-22 04:53:56 -0400 |
| commit | e6fc8fe57e0ad75313f839fe60a5bb442f7954fb (patch) | |
| tree | ecbfbe3d2cb41eb57e14c822fa1404405e2ec508 | |
| parent | a5c1f147db69d161110286e40da3c7f0c18cae8b (diff) | |
Added infobar to favs page, added mini-profile template
| -rw-r--r-- | src/site.clj | 66 | ||||
| -rwxr-xr-x | src/utils.clj | 3 | ||||
| -rw-r--r-- | template/log_dump.st | 2 | ||||
| -rwxr-xr-x | template/logged_dump.st | 20 | ||||
| -rw-r--r-- | template/mini_profile.st | 37 | ||||
| -rw-r--r-- | template/tagged_dumps.st | 81 | ||||
| -rw-r--r-- | template/userlog.st | 112 |
7 files changed, 143 insertions, 178 deletions
diff --git a/src/site.clj b/src/site.clj index c9c034d..93a263d 100644 --- a/src/site.clj +++ b/src/site.clj @@ -365,6 +365,7 @@ FROM users u (let [scores (:map (poll *user-scores*))] (get scores nick 0)))) +; TODO: merge w/ user/fetch-nick (defn lookup-user-info [nick] (if-let [i (get (poll *user-info*) nick)] (if-let [score (lookup-score nick)] @@ -456,18 +457,29 @@ FROM users u ;; User log +(defn build-mini-profile [user-info] + (let [st (fetch-template-fragment "mini_profile") + nick (user-info :nick) + score (lookup-score nick)] + (doseq [a [:nick :avatar :contact :bio]] + (let [v (user-info a)] + (.setAttribute st (name a) + (if (non-empty-string? v) (escape-html v))))) + (doto st + (.setAttribute "score" (comma-format score)) + (.setAttribute "score_ent" (score-to-entity score)) + (.setAttribute "dump_cnt" (comma-format (count-dumps-posted nick))) + (.setAttribute "dumps_user_faved_cnt" (comma-format (count-dumps-user-faved nick))) + (.toString)))) + (defn user-log [session profile-nick offset] (if-let [user-info (fetch-nick profile-nick)] (let [st (fetch-template "userlog" session) profile-nick (:nick user-info) ; Update to get right casing nick (session :nick) logger (make-time-logger) - is-home (and nick (= nick profile-nick)) has-avatar (non-empty-string? (user-info :avatar)) offset (maybe-parse-int offset 0) - dump-cnt (count-dumps-posted profile-nick) - fav-from-cnt (count-dumps-user-faved profile-nick) - score (lookup-score profile-nick) dump-offset (* offset *dumps-per-page*) raw-dumps (logger tags/fetch-dumps-by-nick :nick profile-nick @@ -476,19 +488,13 @@ FROM users u dumps (map tags/add-favorited-flag (take *dumps-per-page* raw-dumps) (repeat session)) dumps (map tags/remove-tags-for-output dumps) dumps (logger doall (map process-message-for-output dumps))] - (.setAttribute st "is_home" is-home) - (doseq [a [:nick :avatar :contact :bio]] - (let [v (user-info a)] - (.setAttribute st (name a) - (if (non-empty-string? v) (escape-html v))))) - (if (> (count dumps) 0) + (.setAttribute st "nick" profile-nick) + (.setAttribute st "is_home" (= nick profile-nick)) + (.setAttribute st "mini_profile" (build-mini-profile user-info)) + (if (> (count dumps) 0) (.setAttribute st "dumps" dumps)) (if (> (count raw-dumps) *dumps-per-page*) (.setAttribute st "next" (inc offset))) - (.setAttribute st "score" (comma-format score)) - (.setAttribute st "score_ent" (score-to-entity score)) - (.setAttribute st "dump_cnt" (comma-format dump-cnt)) - (.setAttribute st "dumps_user_faved_cnt" (comma-format fav-from-cnt)) (if (not= offset 0) (.setAttribute st "prev" (max (dec offset) 0))) (.setAttribute st "debug_log_items" (logger)) @@ -783,11 +789,11 @@ FROM users u ;; message-user-id: get messages posted by this user ;; tag-user-id: get messages tagged by this user -(defnk tagged-dumps-template [session params tags url page-title :message-user-id false - :tag-user-id false - :avatar nil - :logger (make-time-logger) - :include-vip false] +(defnk tagged-dumps-template [session params tags url page-title info-bar + :message-user-id false + :tag-user-id false + :logger (make-time-logger) + :include-vip false] (let [st (fetch-template "tagged_dumps" session) offset (maybe-parse-int (params :offset) 0) dump-offset (* offset *dumps-per-page*) @@ -806,9 +812,8 @@ FROM users u (if (not= offset 0) (.setAttribute st "prev" (max (dec offset) 0))) (.setAttribute st "dumps" dumps) + (.setAttribute st "infobar" info-bar) (.setAttribute st "page_title" page-title) - (if avatar - (.setAttribute st "avatar" avatar)) (.setAttribute st "page_url" url) (.setAttribute st "debug_log_items" (logger)) (.toString st))) @@ -818,26 +823,29 @@ FROM users u (defn tagged-dumps-by-nick [session params url] (let [nick (params :nick) user-id (user-id-from-nick nick) - tags (map url-decode (re-split #"\+" (undecoded-url-piece url 3))) + user-info (fetch-nick nick) + info-bar (build-mini-profile user-info) + tags (map url-decode (re-split #"\+" (undecoded-url-piece url 2))) url (str nick "/tag/" (str-join "+" (map url-encode tags))) page-title (str "dumps " nick " tagged as '" (escape-html (str-join "' and '" tags)) "'")] - (tagged-dumps-template session params tags url page-title :tag-user-id user-id))) + (tagged-dumps-template session params tags url page-title info-bar :tag-user-id user-id))) (defn tagged-dumps [session params url] (let [tags (map url-decode (re-split #"\+" (undecoded-url-piece url 1))) url (str "tag/" (str-join "+" (map url-encode tags))) page-title (str "dumps tagged as '" (escape-html (str-join "' and '" tags)) "'")] - (tagged-dumps-template session params tags url page-title))) + (tagged-dumps-template session params tags url page-title ""))) (defn favorites [session params] (let [nick (params :nick) - user-info (lookup-user-info nick) + user-info (fetch-nick nick) user-id (:user_id user-info) avatar (:avatar user-info) url (str nick "/favorites") - page-title (str nick "'s favorites")] - (tagged-dumps-template session params "favorite" url page-title :tag-user-id user-id - :avatar avatar + page-title (str nick "'s favorites") + infobar (build-mini-profile user-info)] + (tagged-dumps-template session params "favorite" url page-title infobar + :tag-user-id user-id :include-vip (is-vip? session)))) (defn json-favorites [session params] @@ -1099,6 +1107,8 @@ FROM users u (GET "/:nick/tag/:tag/:offset" (tagged-dumps-by-nick session params (request-url request))) (GET "/:nick/favorites" (favorites session params)) (GET "/:nick/favorites/:offset" (favorites session params)) + (GET "/:nick/favs" (favorites session params)) + (GET "/:nick/favs/:offset" (favorites session params)) (GET "/:nick/log" (user-log session (params :nick) "0")) (GET "/:nick/log/:offset" (user-log session (params :nick) (params :offset))) (GET "/:nick/:offset" (user-log session (params :nick) (params :offset))) diff --git a/src/utils.clj b/src/utils.clj index 8bd8291..04b870f 100755 --- a/src/utils.clj +++ b/src/utils.clj @@ -270,6 +270,9 @@ (.setAttribute st "isadmin" (session :is_admin)))) st)) +(defn fetch-template-fragment [template] + (.getInstanceOf template-group template)) + (defn serve-template [template session] (.toString (fetch-template template session))) diff --git a/template/log_dump.st b/template/log_dump.st index 9173ffc..fca3b82 100644 --- a/template/log_dump.st +++ b/template/log_dump.st @@ -4,7 +4,7 @@ $else$ <div class="logged-dump dump $if(dump.favorited)$favorite$endif$" id="message-$dump.message_id$" nick="$dump.nick$"> $endif$ -$dump.created_on$ -- by <b><a href="/$dump.nick$">$dump.nick$</b> +$dump.created_on$ -- by <a href="/$dump.nick$"><b>$dump.nick$</b> <div id="logavatar"> $if(dump.avatar)$ <img height="50" width="50" src="$dump.avatar$" /> diff --git a/template/logged_dump.st b/template/logged_dump.st deleted file mode 100755 index fd3403b..0000000 --- a/template/logged_dump.st +++ /dev/null @@ -1,20 +0,0 @@ - -<div class="logged-dump" id="message-$dump.message_id$"> - <div>$dump.created_on$ -- by <b><a href="/$dump.nick$">$dump.nick$</a></b></div> - - <a href="/u/$dump.nick$"> - - <div id="logavatar"> - - $if(dump.avatar)$<img height="50" width="50" src="$dump.avatar$" /> - - $else$ - - <img height="50" width="50" src="/static/noinfo.png"> - - $endif$ - </div></a> - <div class="content">$dump.content$</div> - <hr /> - $share_buttons()$ -</div> diff --git a/template/mini_profile.st b/template/mini_profile.st new file mode 100644 index 0000000..bdb58ec --- /dev/null +++ b/template/mini_profile.st @@ -0,0 +1,37 @@ +<div id="userListp"><br> + <h2> + $if(avatar)$ + <img id="avatarPic" src="$avatar$"/> + $else$<br><br> + <img id="avatarPic" src="/static/img/noinfo.png"> + $endif$ + + <a href="http://dump.fm/$nick$">$nick$</a></h2><br> + $if(score_ent)$ + <h8> + fav score: $score$ + <h9>$score_ent$</h9> + $endif$</h8> + $if(isadmin)$<br><br> + <div id="adminmute"> + <a href="#" onclick="Admin.mute('$nick$'); return false">Mute $nick$!</a><br> + </div> + $endif$ + + <div><a href="http://dump.fm/$nick$/log">dumps posted: $dump_cnt$</a></div> + <div><a href="http://dump.fm/$nick$/favorites">dumps $nick$ faved: $dumps_user_faved_cnt$</a></div> + + <br> <h3>contact info</h3> + $if(contact)$ + <br><div id="contact" class="linkify">$contact$</div> + $else$ + <div><img id="contact" src="/static/img/noinfo.png"><br><br></div> + $endif$ + + <br><br><h3>bio</h3> + $if(bio)$ + <br> <div id="bio" class="linkify">$bio$</div> + $else$ + <div><img id="bio" src="/static/img/noinfo.png"><br><br></div> + $endif$ +</div> diff --git a/template/tagged_dumps.st b/template/tagged_dumps.st index 26437d7..a5bef9c 100644 --- a/template/tagged_dumps.st +++ b/template/tagged_dumps.st @@ -11,57 +11,44 @@ $banner()$ <div id="dcontent"> <div id="messagetabs"></div> - <div id="rapper"> - </div> + <div id="rapper"></div> <div id="messagePanep"> - <div id="userListp"> - $if(avatar)$ - <div style="border-image:url($avatar$)"> - <div id="avatarPic"> - <img style="padding-top: 5px;" height="50" width="50" src="$avatar$"></img> - </div> - </div> - $endif$ - <h8>$page_title$<br></h8><br> - </div> - <div id="messageList"> - - $if(dumps)$ <span class="content"> - $dumps: { d | $log_dump(dump=d)$ }$ - - </span> - $if(json_tags)$ - <script> - $json_tags: { j | $j$; }$ - </script> - $endif$ + $infobar$ + <div id="messageList"> + + $if(dumps)$ <span class="content"> + $dumps: { d | $log_dump(dump=d)$ }$ + </span> + $if(json_tags)$ + <script> + $json_tags: { j | $j$; }$ + </script> + $endif$ + $else$ + <span>favless</span> + $endif$ + </div> + + <div id="msgInputDiv"> + <div id="msginputrapper"> + + $if(prev)$ + <a href="/$page_url$/$prev$"><input id="prevbutton" value="<- Prev"></a> $else$ - <span>favless</span> + <input id="prevbutton"> $endif$ - </div> - - - <div id="msgInputDiv"> - <div id="msginputrapper"> - - $if(prev)$ - <a href="/$page_url$/$prev$"><input id="prevbutton" value="<- Prev"></a> - $else$ - <input id="prevbutton"> - $endif$ - $if(next)$ - <a href="/$page_url$/$next$"> <input id="nextbutton" value="Next ->"></a> - $else$ - <input id="nextbutton" value="nomodumps"> - $endif$ - - - </div> - <div id="footerc"> - $footer()$ - </div> + $if(next)$ + <a href="/$page_url$/$next$"> <input id="nextbutton" value="Next ->"></a> + $else$ + <input id="nextbutton" value="nomodumps"> + $endif$ </div> - </div></div></div> + <div id="footerc"> + $footer()$ + </div> + </div> + </div> + </div> </body> </html> diff --git a/template/userlog.st b/template/userlog.st index 850e55b..e393e03 100644 --- a/template/userlog.st +++ b/template/userlog.st @@ -12,94 +12,42 @@ </head> <body> $banner()$ - <div id="dcontent"> - <div id="messagetabs"></div> - <div id="rapper"> - </div> - - <div id="messagePanep"> - <div id="userListp"><br> - <h2> - $if(avatar)$ - <img id="avatarPic" src="$avatar$"/> - $else$<br><br> - <img id="avatarPic" src="/static/img/noinfo.png"> - $endif$ - - <a href="http://dump.fm/$nick$"> $nick$ </a></h2><br> - $if(score_ent)$ - <h8> - fav score: $score$ - <h9>$score_ent$</h9> - $endif$</h8> - $if(isadmin)$<br><br> - <div id="adminmute"> - <a href="#" onclick="Admin.mute('$nick$'); return false">Mute $nick$!</a><br> - </div> - $endif$ - - <div><a href="http://dump.fm/$nick$/log">dumps posted: $dump_cnt$</a></div> - <div><a href="http://dump.fm/$nick$/favorites">dumps $nick$ faved: $dumps_user_faved_cnt$</a></div> - - - <br> <h3>contact info</h3> - $if(contact)$ - <br><div id="contact" class="linkify">$contact$</div> - $else$ - <div><img id="contact" src="/static/img/noinfo.png"><br><br></div> - $endif$ - - <br><br><h3>bio</h3> - $if(bio)$ - <br> <div id="bio" class="linkify">$bio$</div> - $else$ - <div><img id="bio" src="/static/img/noinfo.png"><br><br></div> - $endif$ - - - - </div> - - - <div id="messageList"> - - $if(dumps)$ <span class="content"> + <div id="dcontent"> + <div id="messagetabs"></div> + <div id="rapper"> + </div> + + <div id="messagePanep"> + $mini_profile$ + <div id="messageList"> + $if(dumps)$ <span class="content"> $dumps:{ d | $profile_dump(dump=d)$ }$ - - - </span> - - + $else$ + no dumps + $endif$ + </div> + <div id="msgInputDiv"> + <div id="msginputrapper"> + $mini_profile()$ + $if(prev)$ + <a href="/$nick$/$prev$"><input id="prevbutton" value="<- Prev"></a> $else$ - no dumps + <input id="prevbutton"> $endif$ - </div> - - - <div id="msgInputDiv"> - <div id="msginputrapper"> - - $if(prev)$ - <a href="/$nick$/$prev$"><input id="prevbutton" value="<- Prev"></a> - $else$ -<input id="prevbutton"> - $endif$ - - $if(next)$ - <a href="/$nick$/$next$"> <input id="nextbutton" value="Next ->"></a> - $else$ - <input id="nextbutton" value="nomodumps"> - $endif$ - - - </div> - <div id="footerc"> - $footer()$ - </div> + $if(next)$ + <a href="/$nick$/$next$"> <input id="nextbutton" value="Next ->"></a> + $else$ + <input id="nextbutton" value="nomodumps"> + $endif$ + </div> + <div id="footerc"> + $footer()$ </div> - </div></div></div> + </div> + </div> + </div> </body> </html> |
