summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Ostler <scottbot9000@gmail.com>2010-06-22 04:53:56 -0400
committerScott Ostler <scottbot9000@gmail.com>2010-06-22 04:53:56 -0400
commite6fc8fe57e0ad75313f839fe60a5bb442f7954fb (patch)
treeecbfbe3d2cb41eb57e14c822fa1404405e2ec508
parenta5c1f147db69d161110286e40da3c7f0c18cae8b (diff)
Added infobar to favs page, added mini-profile template
-rw-r--r--src/site.clj66
-rwxr-xr-xsrc/utils.clj3
-rw-r--r--template/log_dump.st2
-rwxr-xr-xtemplate/logged_dump.st20
-rw-r--r--template/mini_profile.st37
-rw-r--r--template/tagged_dumps.st81
-rw-r--r--template/userlog.st112
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>