5 changed files with 75 additions and 47 deletions
@ -1,21 +1,32 @@ |
|||||||
(ns NoteHub.main |
(ns NoteHub.main |
||||||
(:require [clojure.browser.dom :as dom] |
(:use [jayq.core :only [$ css inner val anim]]) |
||||||
[goog.dom :as gdom] |
(:require [fetch.remotes :as remotes] |
||||||
[goog.style :as style] |
[clojure.browser.dom :as dom] |
||||||
[goog.dom.classes :as classes] |
[clojure.browser.event :as event]) |
||||||
[clojure.browser.event :as event] |
(:require-macros [fetch.macros :as fm])) |
||||||
[goog.editor.focus :as focus])) |
|
||||||
|
|
||||||
(defn $ |
; frequently used selectors |
||||||
"The DOM-element selector." |
(def $draft ($ :#draft)) |
||||||
[selector] |
(def $preview ($ :#preview)) |
||||||
(dom/get-element selector)) |
|
||||||
|
|
||||||
(if-let [draft ($ "draft")] |
(defn scroll-to |
||||||
(focus/focusInputField draft)) |
"scrolls to the given selector" |
||||||
|
[$id] |
||||||
|
(anim ($ :body) {:scrollTop ((js->clj (.offset $id)) "top")} 500)) |
||||||
|
|
||||||
; Show the Preview button as soon as the user starts typing. |
; set focus to the draft textarea (if there is one) |
||||||
(event/listen ($ "draft") |
(.focus $draft) |
||||||
:keypress |
|
||||||
|
; show the preview & publish buttons as soon as the user starts typing. |
||||||
|
(.keypress $draft |
||||||
|
(fn [e] |
||||||
|
(css ($ :#buttons) {:display :block}))) |
||||||
|
|
||||||
|
; on a preview button click, transform markdown to html, put it |
||||||
|
; to the preview layer and scroll to it |
||||||
|
(.click ($ :#preview-button) |
||||||
(fn [e] |
(fn [e] |
||||||
(style/setStyle ($ "preview-button") "display" "block"))) |
(do |
||||||
|
(fm/remote (md-to-html (val $draft)) [result] |
||||||
|
(inner $preview result) |
||||||
|
(scroll-to $preview))))) |
||||||
|
|||||||
Loading…
Reference in new issue