 
 ;;; goog.net.IFrameIO routines
 (defn iframe-response-ok [msg]
-  (let [items [(str "Filename: " (:filename msg))
-               (str "Size: " (:size msg))
-               (str "Tempfile: " (:tempfile msg))]]
-    (session/put! :upload-status (set-status "alert alert-success"
-                                             "Upload Successful"
-                                             items))))
+  (let [status (set-status "alert alert-success"
+                           "Upload Successful"
+                           [(str "Filename: " (:filename msg))
+                            (str "Size: " (:size msg))
+                            (str "Tempfile: " (:tempfile msg))])]
+    (session/put! :upload-status status)))
 
 (defn iframe-response-error [msg]
-  (let [items [(str "Status: " (:status msg))
-               (str (:message msg))]]
-    (session/put! :upload-status (set-status "alert alert-danger"
-                                             "Upload Failure"
-                                             items))))
+  (let [status (set-status "alert alert-danger"
+                           "Upload Failure"
+                           [(str "Status: " (:status msg))
+                            (str (:message msg))])]
+    (session/put! :upload-status status)))
 
 (defn handle-iframe-response [json-msg]
   (let [msg (js->clj json-msg :keywordize-keys true)]

        iframe (IframeIo.)]
    (events/listen iframe goog.net.EventType.COMPLETE
                   (fn [event]
                     (handle-iframe-response (.getResponseJson iframe))
                     (.dispose iframe)))
    (set-upload-indicator)

             :id "upload-file"}]]])

(defn set-upload-indicator []
  (let [class "fa fa-spinner fa-spin fa-pulse"]
    (session/put! :upload-status [:div 
                                  [:p "Uploading file... "
                                   [:span {:class class}]]])))

(defn into-list [items]
  (into [:ul]
