Selmer style
and script
tags are not working cleanly for me.
This commit is contained in:
parent
a805f3ccc5
commit
d43eb22cd3
8
.gitignore
vendored
8
.gitignore
vendored
|
@ -49,3 +49,11 @@ youyesyet\.dump\.20180816
|
|||
*.tar
|
||||
|
||||
src/clj/youyesyet/cache\.clj
|
||||
|
||||
.lsp/sqlite.db
|
||||
|
||||
.settings/
|
||||
|
||||
.classpath
|
||||
|
||||
.project
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
[ring/ring-servlet "1.7.1"]
|
||||
[ring-webjars "0.2.0"]
|
||||
[secretary "1.2.3"]
|
||||
[selmer "1.12.17"]]
|
||||
[selmer "1.12.40"]]
|
||||
|
||||
:deploy-repositories [["releases" :clojars]
|
||||
["snapshots" :clojars]]
|
||||
|
|
|
@ -42,13 +42,13 @@
|
|||
{% endblock %}
|
||||
{% block extra-tail %}
|
||||
<!-- scripts and styles -->
|
||||
<!-- ATTENTION \/ -->
|
||||
<!-- ATTENTION /\ -->
|
||||
<!-- Leaflet -->
|
||||
<link rel="stylesheet" href="js/lib/node_modules/leaflet/dist/leaflet.css" />
|
||||
{% script "js/lib/node_modules/signature_pad/dist/signature_pad.min.js" %}
|
||||
{% script "js/lib/node_modules/leaflet/dist/leaflet.js" %}
|
||||
{% script "/js/app.js" %}
|
||||
<link rel="stylesheet" href="{{servlet-context}}/js/lib/node_modules/leaflet/dist/leaflet.css" />
|
||||
<script src="{{servlet-context}}/js/lib/node_modules/leaflet/dist/leaflet.js"></script>
|
||||
<!-- Signature pad -->
|
||||
<script src="{{servlet-context}}/js/lib/node_modules/signature_pad/dist/signature_pad.min.js"></script>
|
||||
<!-- our actual app -->
|
||||
<script src="{{servlet-context}}/js/app.js"></script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
|
|
@ -6,17 +6,20 @@
|
|||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="referrer" content="same-origin">
|
||||
{% style "/css/yyy-common.css" %}
|
||||
{% style "/css/yyy-site.css" %}
|
||||
{% style "/css/spinner.css" %}
|
||||
<link rel="stylesheet" type="text/css" href="{{servlet-context}}/css/yyy-common.css" />
|
||||
<link rel="stylesheet" type="text/css" href="{{servlet-context}}/css/yyy-site.css" />
|
||||
<link rel="stylesheet" type="text/css" href="{{servlet-context}}/css/spinner.css" />
|
||||
<link href="https://fonts.googleapis.com/css?family=Archivo+Black|Archivo+Narrow" rel="stylesheet"/>
|
||||
{% script "/js/lib/node_modules/jquery/dist/jquery.min.js" %}
|
||||
<script src="{{servlet-context}}/js/lib/node_modules/jquery/dist/jquery.min.js"></script>
|
||||
<title>{{site-title}}: {{title}}</title>
|
||||
{% endblock %}
|
||||
{% block extra-head %}
|
||||
<!-- extra-head: put any additional markup to go into the head of your document into this block -->
|
||||
<!-- e.g. script tags, link tags -->
|
||||
{% endblock %}
|
||||
{% if servlet-context %}
|
||||
<!-- Servlet context is {{servlet-context}} -->
|
||||
{% endif %}
|
||||
</head>
|
||||
<body>
|
||||
{% block whole-page %}
|
||||
|
@ -87,12 +90,12 @@
|
|||
<!-- foot: override this block if you don't want the standard footer -->
|
||||
<footer>
|
||||
<div id="credits">
|
||||
<!-- div>
|
||||
<div>
|
||||
<img src="{{servlet-context}}/img/credits/ric-logo.png" width="24" height="24"/>
|
||||
A project of the
|
||||
<a href="https://radical.scot/">Radical Independence Campaign</a> ||
|
||||
Version {{version}}
|
||||
</div -->
|
||||
</div>
|
||||
<div>
|
||||
<img height="16" width="16" alt="Clojure" src="{{servlet-context}}/img/credits/luminus-logo.png"/>Built with <a href="http://www.luminusweb.net/">LuminusWeb</a> ||
|
||||
<img height="16" width="16" alt="Clojure" src="{{servlet-context}}/img/credits/clojure-icon.gif"/> Powered by <a href="http://clojure.org">Clojure</a> ||
|
||||
|
|
|
@ -12,8 +12,7 @@
|
|||
[youyesyet.db.core :as db-core]
|
||||
[youyesyet.layout :as layout]
|
||||
[youyesyet.oauth :as oauth]
|
||||
[compojure.core :refer [defroutes GET POST]]
|
||||
))
|
||||
[compojure.core :refer [defroutes GET POST]]))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;;
|
||||
|
@ -48,27 +47,30 @@
|
|||
(if (.exists motd) (slurp motd) "")))
|
||||
|
||||
|
||||
(defn about-page []
|
||||
(defn about-page [request]
|
||||
(layout/render "md.html" {:title
|
||||
(str "About " (:site-title env))
|
||||
:content (md-to-html-string (slurp (io/resource "about.md")))}))
|
||||
(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]
|
||||
(if
|
||||
request
|
||||
request
|
||||
(do
|
||||
;; do something to store it in the database
|
||||
(layout/render "call-me-accepted.html" (:session request) (:params request)))
|
||||
(layout/render "call-me.html" (:session request)
|
||||
{:title "Please call me!"
|
||||
:servlet-context (:servlet-context request)
|
||||
;; TODO: Issues need to be fetched from the database
|
||||
:concerns (db-core/list-issues db-core/*db* {})})))
|
||||
|
||||
|
||||
(defn home-page []
|
||||
(layout/render "home.html" {:title "You yes yet?"
|
||||
:motd (md-to-html-string (motd))}))
|
||||
(defn home-page [request]
|
||||
(layout/render "home.html" {:title "You yes yet?"
|
||||
:servlet-context (:servlet-context request)
|
||||
:motd (md-to-html-string (motd))}))
|
||||
|
||||
|
||||
(defn login-page
|
||||
|
@ -77,58 +79,62 @@
|
|||
(let [params (keywordize-keys (:params request))
|
||||
session (:session request)
|
||||
username (:username params)
|
||||
user (if username (db-core/get-canvasser-by-username db-core/*db* {:username username}))
|
||||
user (when username (db-core/get-canvasser-by-username db-core/*db* {:username username}))
|
||||
password (:password params)
|
||||
redirect-to (or
|
||||
(:redirect-to params)
|
||||
(str (:servlet-context request) "/roles"))]
|
||||
(cond
|
||||
(:authority params)
|
||||
(let [auth (oauth/authority! (:authority params))]
|
||||
(if auth
|
||||
(do
|
||||
(log/info "Attempting to authorise with authority " (:authority params))
|
||||
(oauth/fetch-request-token
|
||||
(assoc request :session (assoc session :authority auth))
|
||||
auth))
|
||||
(throw (Exception. (str "No such authority: " (:authority params))))))
|
||||
(:authority params)
|
||||
(let [auth (oauth/authority! (:authority params))]
|
||||
(if auth
|
||||
(do
|
||||
(log/info "Attempting to authorise with authority " (:authority params))
|
||||
(oauth/fetch-request-token
|
||||
(assoc request :session (assoc session :authority auth))
|
||||
auth))
|
||||
(throw (Exception. (str "No such authority: " (:authority params))))))
|
||||
;; this is obviously, ABSURDLY, insecure. I don't want to put just-about-good-enough,
|
||||
;; it-will-do-for-now security in place; instead, I want this to be test code only
|
||||
;; until we have o-auth properly working.
|
||||
(and user (= username password))
|
||||
(let
|
||||
(and user (= username password))
|
||||
(let
|
||||
[roles (layout/get-user-roles user)]
|
||||
(log/info (str "Logged in user '" username "' with roles " roles))
|
||||
(assoc
|
||||
(log/info (str "Logged in user '" username "' with roles " roles))
|
||||
(assoc
|
||||
(response/found redirect-to)
|
||||
:session
|
||||
(assoc session :user (assoc user :roles roles))))
|
||||
;; if we've got a username but either no user object or else
|
||||
;; the password doesn't match
|
||||
username
|
||||
username
|
||||
(layout/render
|
||||
"login.html"
|
||||
{: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"]})
|
||||
;; if we've no username, just invite the user to log in
|
||||
:else
|
||||
:else
|
||||
(layout/render
|
||||
"login.html"
|
||||
{:title "Please log in"
|
||||
:servlet-context (:servlet-context request)
|
||||
:redirect-to redirect-to
|
||||
:authorities (db-core/list-authorities db-core/*db*)}))))
|
||||
|
||||
|
||||
(defroutes home-routes
|
||||
(GET "/" [] (home-page))
|
||||
(GET "/home" [] (home-page))
|
||||
(GET "/about" [] (about-page))
|
||||
(GET "/call-me" [] (call-me-page nil))
|
||||
(GET "/" [request] (home-page request))
|
||||
(GET "/home" [request] (home-page request))
|
||||
(GET "/about" [request] (about-page request))
|
||||
(GET "/call-me" [request] (call-me-page request))
|
||||
(POST "/call-me" request (call-me-page request))
|
||||
(GET "/login" request (login-page request))
|
||||
(POST "/login" request (login-page request))
|
||||
(GET "/notyet" [] (layout/render "notyet.html"
|
||||
{:title "Can we persuade you?"}))
|
||||
(GET "/supporter" [] (layout/render "supporter.html"
|
||||
{:title "Have you signed up as a canvasser yet?"})))
|
||||
(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)})))
|
||||
|
|
|
@ -15,30 +15,33 @@
|
|||
[youyesyet.routes.auto :as auto]))
|
||||
|
||||
|
||||
(defn roles-page [request]
|
||||
(defn roles-page
|
||||
"Render the routing page for the roles the currently logged in user is member of."
|
||||
[request]
|
||||
(let
|
||||
[session (:session request)
|
||||
user (-> request :session :user)
|
||||
roles (if
|
||||
user
|
||||
(db-core/list-roles-by-canvasser db-core/*db* {:id (:id user)}))]
|
||||
[session (:session request)
|
||||
user (-> request :session :user)
|
||||
roles (if
|
||||
user
|
||||
(db-core/list-roles-by-canvasser db-core/*db* {:id (:id user)}))]
|
||||
(log/info (str "Roles routing page; user is " user "; roles are " roles))
|
||||
(if
|
||||
roles
|
||||
roles
|
||||
(layout/render
|
||||
"roles.html"
|
||||
{:title (str "Welcome " (:fullname user) ", what do you want to do?")
|
||||
:user user
|
||||
:roles (map #(assoc % :link (safe-name (:name %) :sql)) roles)})
|
||||
"roles.html"
|
||||
{:title (str "Welcome " (:fullname user) ", what do you want to do?")
|
||||
:servlet-context (:servlet-context request)
|
||||
:user user
|
||||
:roles (map #(assoc % :link (safe-name (:name %) :sql)) roles)})
|
||||
(assoc (response/found "/login") :session (dissoc session :user)))))
|
||||
|
||||
|
||||
(defn admins-page
|
||||
[request]
|
||||
(layout/render
|
||||
(support/resolve-template "application-index.html")
|
||||
{:title "Administrative menu"}))
|
||||
(support/resolve-template "application-index.html")
|
||||
{:title "Administrative menu"
|
||||
:servlet-context (:servlet-context request)}))
|
||||
|
||||
|
||||
(defn analysts-page
|
||||
|
@ -47,22 +50,23 @@
|
|||
anything sophisticated here."
|
||||
[request]
|
||||
(layout/render
|
||||
(support/resolve-template "application-index.html")
|
||||
{:title "Administrative menu"}))
|
||||
(support/resolve-template "application-index.html")
|
||||
{:title "Administrative menu"
|
||||
:servlet-context (:servlet-context request)}))
|
||||
|
||||
|
||||
(defn canvassers-page
|
||||
[request]
|
||||
(layout/render
|
||||
"roles/canvasser.html"
|
||||
{}))
|
||||
{:servlet-context (:servlet-context request)}))
|
||||
|
||||
|
||||
(defn team-organisers-page
|
||||
[request]
|
||||
(layout/render
|
||||
"roles/team-orgenisers.html"
|
||||
{}))
|
||||
{:servlet-context (:servlet-context request)}))
|
||||
|
||||
|
||||
(defroutes roles-routes
|
||||
|
|
Loading…
Reference in a new issue