Browse Source

eliminated the dependency from jQuery/jayq

master
Christian Mueller 12 years ago
parent
commit
b7d39f5213
  1. 1
      project.clj
  2. 68
      src-cljs/main.cljs
  3. 1
      src/NoteHub/views/common.clj

1
project.clj

@ -5,7 +5,6 @@
[hiccup "1.0.0"] [hiccup "1.0.0"]
[ring/ring-core "1.1.0"] [ring/ring-core "1.1.0"]
[cssgen "0.2.6"] [cssgen "0.2.6"]
[jayq "0.1.0-alpha2"]
[cheshire "4.0.0"] [cheshire "4.0.0"]
[clj-redis "0.0.12"] [clj-redis "0.0.12"]
[org.pegdown/pegdown "1.1.0"] [org.pegdown/pegdown "1.1.0"]

68
src-cljs/main.cljs

@ -1,19 +1,37 @@
(ns NoteHub.main (ns NoteHub.main
(:use [jayq.core :only [$ xhr css inner val anim show]]) (:require [goog.crypt.Md5 :as md5]
(:require [goog.dom :as gdom]
[goog.crypt.Md5 :as md5]
[goog.crypt :as crypt] [goog.crypt :as crypt]
[NoteHub.crossover.lib :as lib] [NoteHub.crossover.lib :as lib]))
[clojure.browser.dom :as dom]))
(defn log
"Logs to console.log"
[text]
(.log js/console text))
(defn $
"Returns DOM element by Id"
[id]
(.getElementById js/document (name id)))
(defn val
"Returns the value of the element or sets the value if the value was provided"
([element] (.-value element))
([element value]
(set! (.-value element) value)))
(defn show
"show the element"
[element]
(set! (.-display (.-style element)) "block"))
; frequently used selectors ; frequently used selectors
(def $draft ($ :#draft)) (def $draft ($ :draft))
(def $action ($ :#action)) (def $action ($ :action))
(def $preview ($ :#preview)) (def $preview ($ :preview))
(def $password ($ :#password)) (def $password ($ :password))
(def $plain-password ($ :#plain-password)) (def $plain-password ($ :plain-password))
(def $input-elems ($ :#input-elems)) (def $input-elems ($ :input-elems))
(def $dashed-line ($ :#dashed-line)) (def $dashed-line ($ :dashed-line))
; Markdown Converter & Sanitizer instantiation ; Markdown Converter & Sanitizer instantiation
(def md-converter (Markdown.Converter.)) (def md-converter (Markdown.Converter.))
@ -43,8 +61,8 @@
#(do #(do
(show $dashed-line) (show $dashed-line)
(show $input-elems) (show $input-elems)
(inner $preview (set! (.-innerHTML $preview)
(.makeHtml md-converter content))) delay))))) (.makeHtml md-converter content))) delay)))))
; set focus to the draft textarea (if there is one) ; set focus to the draft textarea (if there is one)
(when $action (when $action
@ -54,21 +72,21 @@
(val $draft "")) (val $draft ""))
; foces setting is impossible in iOS, so we border the field instead ; foces setting is impossible in iOS, so we border the field instead
(if ios-detected (if ios-detected
(.addClass $draft "ui-border") (set! (.-className $draft) (str (.-className $draft) "ui-border"))
(.focus $draft)))) (.focus $draft))))
; show the preview & publish buttons as soon as the user starts typing. ; show the preview & publish buttons as soon as the user starts typing.
(.keyup $draft update-preview) (set! (.-onkeyup $draft) update-preview)
; when the publish button is clicked, compute the hash of the entered text and ; when the publish button is clicked, compute the hash of the entered text and
; provided session key and assign to the field session-value; ; provided session key and assign to the field session-value;
; moreover, compute the password hash as md5 before transmission ; moreover, compute the password hash as md5 before transmission
(.click ($ :#publish-button) (set! (.-onclick ($ :publish-button))
(fn [e] (fn [e]
(do (do
(.update md5 (val $plain-password)) (.update md5 (val $plain-password))
(val $plain-password nil) (val $plain-password nil)
(when (val $plain-password) (when (val $plain-password)
(val $password (crypt/byteArrayToHex (.digest md5)))) (val $password (crypt/byteArrayToHex (.digest md5))))
(val ($ :#session-value) (val ($ :session-value)
(lib/hash #(.charCodeAt % 0) (str (val $draft) (val ($ :#session-key)))))))) (lib/hash #(.charCodeAt % 0) (str (val $draft) (val ($ :session-key))))))))

1
src/NoteHub/views/common.clj

@ -48,7 +48,6 @@
(when (params :js) (when (params :js)
(html (html
(javascript-tag "var CLOSURE_NO_DEPS = true;") (javascript-tag "var CLOSURE_NO_DEPS = true;")
(include-js "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js")
(include-js "/js/pagedown/Markdown.Converter.js") (include-js "/js/pagedown/Markdown.Converter.js")
(include-js "/cljs/main.js")))]))) (include-js "/cljs/main.js")))])))

Loading…
Cancel
Save