Competitor analysis, more on scaling, a dummy login page

This commit is contained in:
Simon Brooke 2017-03-22 18:56:56 +00:00
parent 0a01978036
commit d31ed67b98
7 changed files with 123 additions and 7 deletions

View file

@ -1,5 +1,6 @@
(ns youyesyet.routes.home
(:require [youyesyet.layout :as layout]
(:require [noir.util.route :as route]
[youyesyet.layout :as layout]
[youyesyet.db.core :as db-core]
[compojure.core :refer [defroutes GET POST]]
[ring.util.http-response :as response]
@ -11,21 +12,38 @@
(defn call-me-page [request]
(if
request
;; do something to store it in the database
(layout/render "call-me-accepted.html" (:params request))
(do
;; do something to store it in the database
(layout/render "call-me-accepted.html" (:params request)))
(layout/render "call-me.html"
{:title "Please call me!"
;; TODO: Concerns need to be fetched from the database
;; TODO: Issues need to be fetched from the database
:concerns nil})))
(defn home-page []
(layout/render "home.html" {:title "You Yes Yet?"}))
(defn login-page
"This is very temporary. We're going to do authentication by oauth."
[request]
(let [params (keywordize-keys (:form-params request))
username (:username params)
password (:password params)
redirect-to (or (:redirect-to params) "app")]
(if
(and (= username "test" (= password "test"))
(do
(session/put! :user username)
(response/redirect redirect-to))
(layout/render "login.html" {:title "Please log in" :redirect-to redirect-to})))))
(defroutes home-routes
(GET "/" [] (home-page))
(GET "/app" [] (app-page))
(GET "/app" [] (route/restricted (app-page)))
(GET "/call-me" [] (call-me-page nil))
(POST "/call-me" request (call-me-page request))
(GET "/auth" request (login-page request))
(POST "/auth" request (login-page request))
(GET "/notyet" [] (layout/render "notyet.html"
{:title "Can we persuade you?"}))
(GET "/supporter" [] (layout/render "supporter.html"

View file

@ -23,12 +23,18 @@
(defn home-page []
(home/panel))
(defn issues-page []
(issues/panel))
(defn map-page []
(maps/panel))
(defn request-page []
(request/panel))
(def pages
{:home #'home-page
:issues #'issues-page
:map #'map-page
:about #'about-page})

View file

@ -1,5 +1,6 @@
(ns youyesyet.views.issues
(:require [re-frame.core :refer [reg-sub]]))
(:require [re-frame.core :refer [reg-sub]]
[youyesyet.ui-utils :as ui]))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
@ -32,7 +33,32 @@
;;; See https://github.com/simon-brooke/youyesyet/blob/master/doc/specification/userspec.md#issues-view
;;; The same panel, using re-frame, will display both the list of issues and the prompt
;;; text on a single issue. All the issues will be fetched once as a map at client load
;;; time
(def *issues*
;;; this is a dummy for the map fetched at load-time
{"Currency" "Lorem ipsum dolar sit amet"
"Head of state" "Lorem ipsum dolar sit amet"
"NATO and defence" "Lorem ipsum dolar sit amet"})
(defn get-issues-fn
"This is a temporary dummy for the function which will pull the issues from
the server."
[]
*issues*)
;;; By memoising the function we arange that it is called only once
(def get-issues (memoize get-issues-fn))
(defn panel
"Generate the issues panel."
[]
[])
[:div.container {:id "main-container"}
(ui/back-link)
[:div {:id "issue-list"}
]
(map (fn [k] (ui/big-link k k)) (keys (get-issues)))
])