Merge remote-tracking branch 'origin/feature/60' into feature/60
This commit is contained in:
commit
e0a310a7e5
17
.classpath
17
.classpath
|
@ -58,5 +58,22 @@
|
|||
<attribute name="optional" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
|
11
.project
11
.project
|
@ -26,4 +26,15 @@
|
|||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>ccw.nature</nature>
|
||||
</natures>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1621149723161</id>
|
||||
<name></name>
|
||||
<type>30</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<div id="nav">
|
||||
<img id="nav-icon" src="{{servlet-context}}/img/threelines.png" alt="Menu"/>
|
||||
<menu id="nav-menu" class="nav">
|
||||
<li class=""><a href="{{servlet-context}}/home">Home</a></li>
|
||||
<li class=""><a href="{{servlet-context}}/">Home</a></li>
|
||||
<li class=""><a href="https://library.projecthope.scot/">Library</a></li>
|
||||
{% if user %}
|
||||
<li class=""><a href="{{servlet-context}}/roles">Roles</a></li>
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
(ns ^{:doc "Routes/pages available to unauthenticated users."
|
||||
:author "Simon Brooke"} youyesyet.routes.home
|
||||
(:require [adl-support.utils :refer [safe-name]]
|
||||
[clojure.java.io :as io]
|
||||
[clojure.string :as s]
|
||||
(:require [clojure.java.io :as io]
|
||||
[clojure.tools.logging :as log]
|
||||
[clojure.walk :refer [keywordize-keys]]
|
||||
[markdown.core :refer [md-to-html-string]]
|
||||
[noir.util.route :as route]
|
||||
[ring.util.http-response :as response]
|
||||
[youyesyet.config :refer [env]]
|
||||
[youyesyet.db.core :as db-core]
|
||||
[youyesyet.layout :as layout]
|
||||
[youyesyet.oauth :as oauth]
|
||||
[youyesyet.routes.utils :refer [with-servlet-context]]
|
||||
[compojure.core :refer [defroutes GET POST]]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -47,30 +45,41 @@
|
|||
(if (.exists motd) (slurp motd) "")))
|
||||
|
||||
|
||||
(defn about-page [request]
|
||||
(defn about-page
|
||||
"Render a page describing the app and its purpose."
|
||||
[request]
|
||||
(layout/render "md.html" {:title
|
||||
(str "About " (:site-title env))
|
||||
:servlet-context (:servlet-context request)
|
||||
:content (md-to-html-string (slurp (io/resource "about.md")))}))
|
||||
|
||||
|
||||
(defn call-me-page [request]
|
||||
(defn call-me-page
|
||||
"Render a page requesting a call to a particular elector from a member of the
|
||||
telephone canvassing team."
|
||||
[request]
|
||||
(if
|
||||
request
|
||||
(do
|
||||
;; do something to store it in the database
|
||||
(layout/render "call-me-accepted.html" (:session request) (:params request)))
|
||||
(layout/render
|
||||
"call-me-accepted.html"
|
||||
(:session request)
|
||||
(assoc (:params request) :servlet-context (:servlet-context request)))
|
||||
(layout/render "call-me.html" (:session request)
|
||||
{:title "Please call me!"
|
||||
:servlet-context (:servlet-context request)
|
||||
(with-servlet-context {:title "Please call me!"
|
||||
;; TODO: Issues need to be fetched from the database
|
||||
:concerns (db-core/list-issues db-core/*db* {})})))
|
||||
:concerns (db-core/list-issues db-core/*db* {})}
|
||||
request)))))
|
||||
|
||||
|
||||
(defn home-page [request]
|
||||
(layout/render "home.html" {:title "You yes yet?"
|
||||
:servlet-context (:servlet-context request)
|
||||
:motd (md-to-html-string (motd))}))
|
||||
(defn home-page
|
||||
"Render the default page."
|
||||
[request]
|
||||
(layout/render "home.html" (with-servlet-context
|
||||
{:title "You yes yet?"
|
||||
:motd (md-to-html-string (motd))}
|
||||
request)))
|
||||
|
||||
|
||||
(defn login-page
|
||||
|
@ -110,18 +119,20 @@
|
|||
username
|
||||
(layout/render
|
||||
"login.html"
|
||||
(with-servlet-context
|
||||
{:title (str "User " username " is unknown")
|
||||
:servlet-context (:servlet-context request)
|
||||
:redirect-to redirect-to
|
||||
:warnings ["Your user name was not recognised or your password did not match"]})
|
||||
:warnings ["Your user name was not recognised or your password did not match"]}
|
||||
request))
|
||||
;; if we've no username, just invite the user to log in
|
||||
:else
|
||||
(layout/render
|
||||
"login.html"
|
||||
(with-servlet-context
|
||||
{:title "Please log in"
|
||||
:servlet-context (:servlet-context request)
|
||||
:redirect-to redirect-to
|
||||
:authorities (db-core/list-authorities db-core/*db*)}))))
|
||||
:authorities (db-core/list-authorities db-core/*db*)}
|
||||
request)))))
|
||||
|
||||
|
||||
(defroutes home-routes
|
||||
|
@ -132,9 +143,13 @@
|
|||
(POST "/call-me" request (call-me-page request))
|
||||
(GET "/login" request (login-page request))
|
||||
(POST "/login" request (login-page request))
|
||||
(GET "/notyet" [request] (layout/render "notyet.html"
|
||||
{:title "Can we persuade you?"
|
||||
:servlet-context (:servlet-context request)}))
|
||||
(GET "/supporter" [request] (layout/render "supporter.html"
|
||||
{:title "Have you signed up as a canvasser yet?"
|
||||
:servlet-context (:servlet-context request)})))
|
||||
(GET "/notyet" [request] (layout/render
|
||||
"notyet.html"
|
||||
(with-servlet-context
|
||||
{:title "Can we persuade you?"}
|
||||
request)))
|
||||
(GET "/supporter" [request] (layout/render
|
||||
"supporter.html"
|
||||
(with-servlet-context
|
||||
{:title "Have you signed up as a canvasser yet?"}
|
||||
request))))
|
||||
|
|
|
@ -1,23 +1,15 @@
|
|||
(ns ^{:doc "Manually maintained routes which handle data transfer to/from the canvasser app."
|
||||
:author "Simon Brooke"} youyesyet.routes.rest
|
||||
(:require [adl-support.rest-support :refer :all]
|
||||
[adl-support.core :refer [massage-params do-or-log-error
|
||||
do-or-return-reason]]
|
||||
(:require [adl-support.core :refer [massage-params]]
|
||||
[adl-support.rest-support :refer [do-or-server-fail valid-user-or-forbid with-params-or-error]]
|
||||
[clojure.core.memoize :as memo]
|
||||
[clojure.data.json :as json]
|
||||
[clojure.java.io :as io]
|
||||
[clojure.string :as s]
|
||||
[clojure.tools.logging :as log]
|
||||
[clojure.walk :refer [keywordize-keys]]
|
||||
[compojure.core :refer [defroutes GET POST]]
|
||||
[compojure.core :refer [defroutes GET]]
|
||||
[java-time :as jt]
|
||||
[mount.core :as mount]
|
||||
[noir.response :as nresponse]
|
||||
[noir.util.route :as route]
|
||||
[ring.util.http-response :as response]
|
||||
[youyesyet.locality :as l]
|
||||
[youyesyet.db.core :as db]
|
||||
[youyesyet.utils :refer :all]
|
||||
))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
|
|
@ -3,16 +3,15 @@
|
|||
(:require [adl-support.core :as support]
|
||||
[adl-support.utils :refer [safe-name]]
|
||||
[clojure.tools.logging :as log]
|
||||
[clojure.walk :refer [keywordize-keys]]
|
||||
[compojure.core :refer [defroutes GET POST]]
|
||||
[noir.util.route :as route]
|
||||
[ring.util.http-response :as response]
|
||||
[youyesyet.config :refer [env]]
|
||||
[youyesyet.db.core :as db-core]
|
||||
[youyesyet.routes.issue-experts :as expert]
|
||||
[youyesyet.layout :as layout]
|
||||
[youyesyet.oauth :as oauth]
|
||||
[youyesyet.routes.auto :as auto]))
|
||||
[youyesyet.routes.auto :as auto]
|
||||
[youyesyet.routes.utils :refer [with-servlet-context]]))
|
||||
|
||||
|
||||
(defn roles-page
|
||||
|
@ -40,8 +39,7 @@
|
|||
[request]
|
||||
(layout/render
|
||||
(support/resolve-template "application-index.html")
|
||||
{:title "Administrative menu"
|
||||
:servlet-context (:servlet-context request)}))
|
||||
(with-servlet-context {:title "Administrative menu"} request)))
|
||||
|
||||
|
||||
(defn analysts-page
|
||||
|
@ -51,22 +49,21 @@
|
|||
[request]
|
||||
(layout/render
|
||||
(support/resolve-template "application-index.html")
|
||||
{:title "Administrative menu"
|
||||
:servlet-context (:servlet-context request)}))
|
||||
(with-servlet-context {:title "Administrative menu"} request)))
|
||||
|
||||
|
||||
(defn canvassers-page
|
||||
[request]
|
||||
(layout/render
|
||||
"roles/canvasser.html"
|
||||
{:servlet-context (:servlet-context request)}))
|
||||
(with-servlet-context {} request)))
|
||||
|
||||
|
||||
(defn team-organisers-page
|
||||
[request]
|
||||
(layout/render
|
||||
"roles/team-orgenisers.html"
|
||||
{:servlet-context (:servlet-context request)}))
|
||||
(with-servlet-context {} request)))
|
||||
|
||||
|
||||
(defroutes roles-routes
|
||||
|
|
12
src/clj/youyesyet/routes/utils.clj
Normal file
12
src/clj/youyesyet/routes/utils.clj
Normal file
|
@ -0,0 +1,12 @@
|
|||
(ns youyesyet.routes.utils)
|
||||
|
||||
(defn with-servlet-context
|
||||
"Returns a map like `m` into which the servlet context from `request`,
|
||||
expected to be a request map, has been merged. When an app is served from
|
||||
Tomcat, there will be a `:servlet-context` key in the map, and it matters;
|
||||
when served from Jetty or other lightweight servlet containers, there won't
|
||||
be. TODO: should probably be moved (or copied) to adl-support."
|
||||
[m request]
|
||||
(if (:servlet-context m)
|
||||
(assoc m :servlet-context (:servlet-context request))
|
||||
m))
|
Loading…
Reference in a new issue