diff --git a/src/blarg/routes/files.clj b/src/blarg/routes/files.clj index d1467a7..bfdf0fd 100644 --- a/src/blarg/routes/files.clj +++ b/src/blarg/routes/files.clj @@ -24,7 +24,7 @@ :success (session/flash-get :file-success) :notice (session/flash-get :file-notice)}))) -(defn handle-new-file [path file] +(defn handle-new-file [path file returnpath] (if (valid-upload? file) (let [filename (:filename file) tempfile (:tempfile file) @@ -39,9 +39,9 @@ (if exists? (session/flash-put! :file-notice "Existing file with the same name was updated with the uploaded file."))) (session/flash-put! :file-error "File could not be uploaded."))) (session/flash-put! :file-error "No file selected to upload.")) - (resp/redirect (str "/listfiles" path))) + (resp/redirect (str "/listfiles" returnpath))) -(defn handle-update-file [id file] +(defn handle-update-file [id file returnpath] (if (valid-upload? file) (let [tempfile (:tempfile file) content-type (:content-type file)] @@ -49,19 +49,19 @@ (session/flash-put! :file-success (str "" id " was updated successfully.")) (session/flash-put! :file-error "File could not be updated."))) (session/flash-put! :file-error "No file selected to upload.")) - (resp/redirect (str "/listfiles"))) + (resp/redirect (str "/listfiles" returnpath))) -(defn handle-delete-file [id] +(defn handle-delete-file [id returnpath] (if-let [deleted (files/delete-file id)] (session/flash-put! :file-success (str "" id " was deleted successfully.")) (session/flash-put! :file-error "File could not be deleted.")) - (resp/redirect "/listfiles")) + (resp/redirect (str "/listfiles" returnpath))) -(defn handle-publish-file [id publish?] +(defn handle-publish-file [id publish? returnpath] (if-let [published (files/publish-file id publish?)] (session/flash-put! :file-success (str "" id " was " (if (:published published) "published" "unpublished") " successfully.")) (session/flash-put! :file-error "Could not update file's published state.")) - (resp/redirect "/listfiles")) + (resp/redirect (str "/listfiles" returnpath))) (defn get-file [path] (if-let [file (files/get-file path (auth/logged-in?))] @@ -71,9 +71,9 @@ (defroutes files-routes (restricted GET "/listfiles" [] (list-files "/")) (restricted GET "/listfiles/*" [*] (list-files *)) - (restricted POST "/uploadfile" [path file] (handle-new-file (ensure-prefix-suffix path "/") file)) - (restricted POST "/updatefile" [id file] (handle-update-file (ensure-prefix id "/") file)) - (restricted POST "/deletefile" [id] (handle-delete-file (ensure-prefix id "/"))) - (restricted GET "/publishfile/*" [*] (handle-publish-file * true)) - (restricted GET "/unpublishfile/*" [*] (handle-publish-file * false)) + (restricted POST "/uploadfile" [path file returnpath] (handle-new-file (ensure-prefix-suffix path "/") file returnpath)) + (restricted POST "/updatefile" [id file returnpath] (handle-update-file (ensure-prefix id "/") file returnpath)) + (restricted POST "/deletefile" [id returnpath] (handle-delete-file (ensure-prefix id "/") returnpath)) + (restricted GET "/publishfile/*" [* returnpath] (handle-publish-file * true returnpath)) + (restricted GET "/unpublishfile/*" [* returnpath] (handle-publish-file * false returnpath)) (GET "/files/*" [*] (get-file *))) diff --git a/src/blarg/views/templates/files/list.html b/src/blarg/views/templates/files/list.html index ac36bbc..937ce6f 100644 --- a/src/blarg/views/templates/files/list.html +++ b/src/blarg/views/templates/files/list.html @@ -54,10 +54,10 @@