am using the my-website code. I then tried to create jimsweb and use the exact code I think the main calls the server file, but I don't understand how the logon screen is called? I can think in cobol but this??
* project.clj (defproject my-website "0.1.0-SNAPSHOT" :description "my Noir website" :dependencies [[org.clojure/clojure "1.3.0"] [noir "1.3.0-beta3"] [org.clojure/java.jdbc "0.2.3"] [mysql/mysql-connector-java "5.1.6"]] :main my-website.server) **db.clj (ns my-website.models.db (:require [clojure.java.jdbc :as sql])) (def db {:classname "com.mysql.jdbc.Driver" :subprotocol "mysql" :subname "//localhost:8080/world" :user "root" :password "pass"}) (defn init-db [] (try (sql/with-connection db (sql/create-table :users [:id "SERIAL"] [:handle "varchar(100)"] [:pass "varchar(100)"])) (catch Exception ex (.getMessage (.getNextException ex))))) (defn db-read "returns the result of running the supplied SQL query" [query & args] (sql/with-connection db (sql/with-query-results res (vec (cons query args)) (doall res)))) (defn add-user [user] (sql/with-connection db (sql/insert-record :users user))) (defn get-user [handle] (first (db-read "select * from users where handle=?" handle))) **server.clj (ns my-website.server (:require [noir.server :as server]) (:gen-class)) (server/load-views "src/my_website/views/") (defn -main [& m] (let [mode (keyword (or (first m) :dev)) port (Integer. (get (System/getenv) "PORT" "8080"))] (server/start port {:mode mode :ns 'my-website}))) **welcome.clj ns my-website.views.welcome (:require [my-website.views.common :as common]) (:use [noir.core :only [defpage]] hiccup.core hiccup.form)) (defpage "/" [] (common/layout )) (defpage "/welcome" {:keys [greeting]} (common/layout (if greeting [:h2 greeting]) (form-to [:post "/welcome"] (label "name" "name") (text-field "name") (submit-button "submit")))) (defpage [:post "/welcome"] {:keys [name]} (noir.core/render "/welcome" {:greeting (str "Welcome " name)})) **common.clj (ns my-website.views.common (:use [noir.core :only [defpartial]] hiccup.element hiccup.form [hiccup.page :only [include-css html5]]) (:require [noir.session :as session])) (defn login-form [] (form-to [:post "/login"] (text-field {:placeholder "user id"} "handle") (password-field {:placeholder "password"} "pass") (submit-button "login"))) (defpartial layout [& content] (html5 [:head [:title "my-website"] (include-css "/css/reset.css")] [:body (if-let [user (session/get :user)] [:h2 "welcome " user (form-to [:post "/logout"] (submit-button "logout"))] [:div.login (login-form) [:p "or"] (link-to "/signup" "sign up")]) content])) **users.clj ns my-website.views.users (:use [noir.core] hiccup.core hiccup.form) (:require [my-website.views.common :as common] [my-website.models.db :as db] [noir.util.crypt :as crypt] [noir.session :as session] [noir.response :as resp])) (defpage "/signup" {:keys [handle error]} (common/layout [:div.error error] (form-to [:post "/signup"] (label "user-id" "user id") (text-field "handle" handle) [:br] (label "pass" "password") (password-field "pass") [:br] (submit-button "create account")))) (defpage [:post "/signup"] user (try (db/add-user (update-in user [:pass] crypt/encrypt)) (resp/redirect "/") (catch Exception ex (render "/signup" (assoc user :error (.getMessage ex)))))) (defpage [:post "/login"] {:keys [handle pass]} (render "/" (let [user (db/get-user handle)] (if (and user (crypt/compare pass (:pass user))) (session/put! :user handle) {:handle handle :error "login failed"})))) (defpage [:post "/logout"] [] (session/clear!) (resp/redirect "/")) On Tuesday, June 11, 2013 6:32:46 AM UTC-6, jayvandal wrote: > > what statements makes the program execute. > The main statement tells the program to execute server file > what statements in the server file tell the program to run the welcome > file ? the user file > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.