   (when (lib/logged-in?)
     {"X-Authentication" (lib/clj->json {:type "user" :nickname (lib/get-nickname) :token (lib/get-token)})}))
 
+(defn login-or-add-item
+  "Check if user is logged in. If not, present item to login. Else present item
+  which triggers the add-form."
+  [logged-in?]
+  (let [translation (if logged-in? (t :discussion :add-position) (t :login :item))
+        url (if logged-in? "add" "login")]
+    {:htmls [translation]
+     :texts [translation]
+     :url url}))
+
 (defn process-and-set-items-and-bubbles
   "Receive response and prepare UI with the new items and bubbles for the next
-  step in the discussion."
+  step in the discussion.
+
+  Dispatch the current add-step, which is the new expected statement or
+  position, which is to be added in the next step."
   [response]
-  (let [{:keys [bubbles attitudes items attacks]} (lib/process-response response)
+  (let [{:keys [bubbles attitudes items attacks positions]} (lib/process-response response)
+        add-step (if (seq positions) :add/position :add/statement)
         update-items (cond
                        (seq items) items
+                       (seq positions) (conj positions (login-or-add-item (lib/logged-in?)))
                        (seq attacks) (vals attacks)
                        (seq attitudes) (vals attitudes)
                        :default [])]
     (om/transact! parser/reconciler `[(discussion/bubbles {:value ~bubbles})
-                                      (discussion/items {:value ~update-items})])))
+                                      (discussion/items {:value ~update-items})
+                                      (discussion/add-step {:value ~add-step})])))
+
 
 ;;;; Handlers
 (defn error-handler


(s/fdef process-and-set-items-and-bubbles
        :args (s/cat :response ::response))

            [discuss.config :as config]
            [discuss.utils.common :as lib]
            [discuss.parser :as parser]
            [discuss.utils.logging :as log]
            [discuss.translations :refer [translate] :rename {translate t}]))

;;;; Auxiliary functions
(defn make-url
