Browse Source

reads routed to API

master
Christian Mueller 12 years ago
parent
commit
718ae9c918
  1. 29
      src/NoteHub/views/pages.clj

29
src/NoteHub/views/pages.clj

@ -1,6 +1,7 @@
(ns NoteHub.views.pages (ns NoteHub.views.pages
(:require [hiccup.util :as util] (:require [hiccup.util :as util]
[NoteHub.api :as api] [NoteHub.api :as api]
[NoteHub.storage :as storage]
[cheshire.core :refer :all]) [cheshire.core :refer :all])
(:use (:use
[NoteHub.storage] ; TODO: delete this [NoteHub.storage] ; TODO: delete this
@ -94,12 +95,19 @@
(slurp "LANDING.md")] (slurp "LANDING.md")]
[:div.centered.helvetica.markdown (get-message :footer)])) [:div.centered.helvetica.markdown (get-message :footer)]))
; Displays the note
(defpage "/:year/:month/:day/:title" {:keys [year month day title theme header-font text-font] :as params}
(wrap
(create-short-url params)
(select-keys params [:title :theme :header-font :text-font])
(:note (api/get-note (api/build-key [year month day] title)))))
; Update Note Page ; Update Note Page
(defpage "/:year/:month/:day/:title/edit" {:keys [year month day title]} (defpage "/:year/:month/:day/:title/edit" {:keys [year month day title]}
(let [noteID (api/build-key [year month day] title)] (let [noteID (api/build-key [year month day] title)]
(input-form "/update-note" :update (input-form "/update-note" :update
(html (hidden-field :key noteID)) (html (hidden-field :key noteID))
(get-note noteID) :enter-passwd))) (:note (api/get-note noteID)) :enter-passwd)))
; New Note Page ; New Note Page
(defpage "/new" {} (defpage "/new" {}
@ -108,29 +116,26 @@
(hidden-field {:id :session-value} :session-value)) (hidden-field {:id :session-value} :session-value))
(get-message :loading) :set-passwd)) (get-message :loading) :set-passwd))
; Displays the note
(defpage "/:year/:month/:day/:title" {:keys [year month day title theme header-font text-font] :as params}
(wrap
(create-short-url params)
(select-keys params [:title :theme :header-font :text-font])
(get-note (api/build-key [year month day] title))))
; Provides Markdown of the specified note ; Provides Markdown of the specified note
(defpage "/:year/:month/:day/:title/export" {:keys [year month day title]} (defpage "/:year/:month/:day/:title/export" {:keys [year month day title]}
(when-let [md-text (get-note (api/build-key [year month day] title))] (when-let [md-text (:note (api/get-note (api/build-key [year month day] title)))]
(content-type "text/plain; charset=utf-8" md-text))) (content-type "text/plain; charset=utf-8" md-text)))
; Provides the number of views of the specified note ; Provides the number of views of the specified note
(defpage "/:year/:month/:day/:title/stats" {:keys [year month day title]} (defpage "/:year/:month/:day/:title/stats" {:keys [year month day title]}
(when-let [views (get-note-views (api/build-key [year month day] title))] (when-let [stats (:statistics (api/get-note (api/build-key [year month day] title)))]
(layout (get-message :statistics) (layout (get-message :statistics)
[:table#stats.helvetica.central-element [:table#stats.helvetica.central-element
[:tr [:tr
[:td (get-message :published)] [:td (get-message :published)]
[:td (interpose "-" [year month day])]] [:td (:published stats)]]
(when (:edited stats)
[:tr
[:td (get-message :edited)]
[:td (:edited stats)]])
[:tr [:tr
[:td (get-message :article-views)] [:td (get-message :article-views)]
[:td views]]]))) [:td (:views stats)]]])))
; Updates a note ; Updates a note
(defpage [:post "/update-note"] {:keys [key draft password]} (defpage [:post "/update-note"] {:keys [key draft password]}

Loading…
Cancel
Save