diff options
| author | sostler <sbostler@gmail.com> | 2010-01-29 01:51:48 -0500 |
|---|---|---|
| committer | sostler <sbostler@gmail.com> | 2010-01-29 01:51:48 -0500 |
| commit | 65f06c8d8593881f10d767dd0610ca6f63569f56 (patch) | |
| tree | 62b1dfe4650a0ecce5fe1131a447c44756d37fd9 | |
| parent | 99cc0ef49a1d087401dbd8e1cfabc7c8d5cc2104 (diff) | |
Added upload to main chat
| -rwxr-xr-x | src/site.clj | 41 | ||||
| -rwxr-xr-x | static/js/pichat.js | 9 | ||||
| -rwxr-xr-x | template/chat.st | 10 |
3 files changed, 40 insertions, 20 deletions
diff --git a/src/site.clj b/src/site.clj index 1d55ac7..15ac373 100755 --- a/src/site.clj +++ b/src/site.clj @@ -316,10 +316,11 @@ ;; Chat -(defn validate-room-access [room session] - (and room - (or (not (room :admin_only)) - (session :is_admin)))) +(defn validate-room-access [room-key session] + (let [room (@rooms room-key)] + (and room + (or (not (room :admin_only)) + (session :is_admin))))) (defn chat [session room] (let [now (System/currentTimeMillis) @@ -344,10 +345,9 @@ (.toString st))) (defn validated-chat [session room-key] - (let [room (@rooms room-key)] - (if (validate-room-access room session) - (chat session room) - (resp-error "UNKNOWN_ROOM")))) + (if (validate-room-access room-key session) + (chat session (@rooms room-key)) + (resp-error "UNKNOWN_ROOM"))) (defn refresh [session params room] (dosync @@ -365,8 +365,7 @@ (defn validated-refresh [session params] (let [room-key (params :room) room (@rooms room-key)] - (if (and room - (or (not (room :admin_only)) (session :is_admin))) + (if (validate-room-access room-key session) (refresh session params room) (resp-error "UNKNOWN_ROOM")))) @@ -409,11 +408,9 @@ (resp-success msg-id))))) (defn validated-msg [session params] - (let [room-key (params :room) - room (@rooms room-key)] - (if (validate-room-access room session) - (msg session params) - (resp-error "UNKNOWN_ROOM")))) + (if (validate-room-access (params :room) session) + (msg session params) + (resp-error "UNKNOWN_ROOM"))) ;; Browser @@ -464,10 +461,9 @@ (.toString st))) (defn validated-log [session room-key offset params] - (let [room (@rooms room-key)] - (if (validate-room-access room session) - (log session room offset params) - (resp-error "UNKNOWN_ROOM")))) + (if (validate-room-access room-key session) + (log session (@rooms room-key) offset params) + (resp-error "UNKNOWN_ROOM"))) ;; Upload @@ -476,6 +472,8 @@ subbed (re-gsub #"[^\w.-]" "" spaceless)] (str (System/currentTimeMillis) "-" subbed))) +;; TODO: enforce + (defn upload [session params] (if (not (session :nick)) [404 "NOT_LOGGED_IN"] @@ -492,6 +490,11 @@ (add-message msg room))) [200 image-url]))) +(defn validated-upload [session params] + (if (validate-room-access (params :room) session) + (upload session params) + (resp-error "UNKNOWN_ROOM"))) + ;; 404 (defn unknown-page [params] diff --git a/static/js/pichat.js b/static/js/pichat.js index 1c378e2..79f21b0 100755 --- a/static/js/pichat.js +++ b/static/js/pichat.js @@ -267,3 +267,12 @@ function initLog() { } function favoriteImage() {}; + +function setupUpload(elementId, roomKey) { + new AjaxUpload(elementId, { + action: '/upload', + autoSubmit: true, + name: 'image', + data: { room: roomKey } + }); +}
\ No newline at end of file diff --git a/template/chat.st b/template/chat.st index cea2004..bf9a1ba 100755 --- a/template/chat.st +++ b/template/chat.st @@ -27,6 +27,14 @@ <script src="http://widgets.getclicky.com/tally/?site_id=170656&sitekey=736f7dd41a0612d8d50797c65768e71a&width=175&height=250&title=Visitors" type="text/javascript"></script> $endif$ <script src="/static/away.js"></script> + <script src="/static/js/ajaxupload.js"></script> + <script> + if (Nick) { + jQuery(document).ready(function() { + setupUpload('upload', Room); + }); + } + </script> </head> <body> $banner()$ @@ -58,7 +66,7 @@ <input id="msgInput" class="msgInput" type="input" /> <input id="msgSubmit" type="submit" value="Send Image URL" /> - <input id="upload" value="Upload" type="submit"> + <input id="upload" value="Upload" type="submit"> </div> $endif$ </div> |
