Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 121 lines (104 sloc) 2.752 kB
014e885 @rogerbraun Erste Version
authored
1 require "digest/sha1"
f92a2be @rogerbraun Paginierung, Gravatars, Verbindung von User und Definition.
authored
2 require "digest/md5"
014e885 @rogerbraun Erste Version
authored
3
4 require "./helpers/login.rb"
5 require "./models/user.rb"
01ebc11 @thebluber definition.rb required
thebluber authored
6 require "./models/definition.rb"
014e885 @rogerbraun Erste Version
authored
7 require "./config/db.rb"
f0d96a4 @rogerbraun Login-System und grundsätzliches Layout
authored
8
9 enable :sessions
10 use Rack::Flash
11
12 get "/login" do
13 erb :login
14 end
15
16 post "/login" do
17 user = log_in(params)
18 if user then
19 flash[:notice] = "Erfolgreich angemeldet!"
20 redirect to "/"
21 else
22 flash[:error] = "Username oder Passwort falsch."
23 redirect to "/login"
24 end
25 end
26
27 get "/logout" do
28 log_out
29 flash[:notice] = "Erfolgreich abgemeldet!"
30 redirect to "/"
31 end
32
33 get "/register" do
34 erb :register
35 end
36
37 post "/register" do
38 user = User.new
39 user.email = params[:email]
40 user.password = params[:password]
41 if user.save then
42 flash[:notice] = "Erfolgreich registriert"
43 session[:user_id] = user.id
44 redirect to "/"
45 else
46 flash[:error] = "Das hat nicht funktioniert..."
47 redirect to "/register"
48 end
49 end
50
51 get "/" do
f92a2be @rogerbraun Paginierung, Gravatars, Verbindung von User und Definition.
authored
52 redirect to "/keyword"
f0d96a4 @rogerbraun Login-System und grundsätzliches Layout
authored
53 end
89cef02 @thebluber test.db, edit.erb, show_all.erb hinzugefügt, edit/:id erstellt, style…
thebluber authored
54
f92a2be @rogerbraun Paginierung, Gravatars, Verbindung von User und Definition.
authored
55 get "/keyword" do
56 page = params[:page] || 1
afae1e3 @rogerbraun Zuletzt bearbeitete Einträge auflisten.
authored
57 @keywords = Keyword.all.page(page, :per_page => 10, :order => :id.asc)
58 @url = url "/keyword"
59 erb :show_all
60 end
61
62 get "/keyword/by_updated_at" do
63 page = params[:page] || 1
64 @keywords = Keyword.all.page(page, :per_page => 10, :order => :updated_at.desc)
65 @url = url "/keyword/by_updated_at"
856a00c @rogerbraun Zugeordnete Einträge anzeigen, schönere Anzeige bei der Paginierung.
authored
66 erb :show_all
67 end
68
69 get "/keyword/assigned" do
70 redirect to "/keyword" unless logged_in?
71 page = params[:page] || 1
afae1e3 @rogerbraun Zuletzt bearbeitete Einträge auflisten.
authored
72 @keywords = Keyword.all(:definition => {:user => current_user}).page(page, :per_page => 10, :order => :id.asc)
73 @url = url "/keyword/assigned"
89cef02 @thebluber test.db, edit.erb, show_all.erb hinzugefügt, edit/:id erstellt, style…
thebluber authored
74 erb :show_all
75 end
76
77 get "/definition/:id" do
580bb63 @rogerbraun Fehlerhaftes redirect repariert, redirect zurück zur zuletzt besuchte…
authored
78 session[:prev_page] = back
89cef02 @thebluber test.db, edit.erb, show_all.erb hinzugefügt, edit/:id erstellt, style…
thebluber authored
79 @def = Definition.get(params[:id])
80 erb :edit
81 end
82
83 put "/definition/:id" do
f92a2be @rogerbraun Paginierung, Gravatars, Verbindung von User und Definition.
authored
84 unless logged_in?
85 flash[:error] = "Zum Speichern erst anmelden!"
86 redirect back
87 else
88 definition = Definition.get(params[:id])
89 definition.user ||= current_user
f04f620 Zähler effizienter programmiert
Roger Braun authored
90 definition.translation = params[:trans]
f92a2be @rogerbraun Paginierung, Gravatars, Verbindung von User und Definition.
authored
91 if definition.save
92 status 201
93 flash[:notice] = "Erfolgreich gespeichert."
580bb63 @rogerbraun Fehlerhaftes redirect repariert, redirect zurück zur zuletzt besuchte…
authored
94 redirect(session[:prev_page] || (to "/keyword"))
f92a2be @rogerbraun Paginierung, Gravatars, Verbindung von User und Definition.
authored
95 else
96 status 412
97 flash[:error] = "Das hat nicht funktioniert..."
580bb63 @rogerbraun Fehlerhaftes redirect repariert, redirect zurück zur zuletzt besuchte…
authored
98 redirect to "/definition/#{params[:id]}"
f92a2be @rogerbraun Paginierung, Gravatars, Verbindung von User und Definition.
authored
99 end
89cef02 @thebluber test.db, edit.erb, show_all.erb hinzugefügt, edit/:id erstellt, style…
thebluber authored
100 end
101 end
102
dc61d74 @thebluber commentfunktion hinzugefügt
thebluber authored
103 post "/definition/:id/comment/new" do
104 definition = Definition.get(params[:id])
afae1e3 @rogerbraun Zuletzt bearbeitete Einträge auflisten.
authored
105 comment = params[:def_comment].strip
106 unless comment.empty?
107 Comment.create(:comment => comment, :author => logged_in? ? current_user.email : "Anonym", :definition => definition)
52e723a Zurueck zum Eintrag nach Kommentar
Roger Braun authored
108 redirect back
dc61d74 @thebluber commentfunktion hinzugefügt
thebluber authored
109 else
110 redirect to "/definition/#{params[:id]}"
111 end
112 end
113
7d276b4 @thebluber /download => user_work.txt wird runtergeladen
thebluber authored
114 get "/download" do
115 user_work = User.all.map{|user| user.email + "\n" + Keyword.user_keywords(user.email)}
116 text = user_work.join("\n")
117 attachment "user_work.txt"
118 text
119 end
89cef02 @thebluber test.db, edit.erb, show_all.erb hinzugefügt, edit/:id erstellt, style…
thebluber authored
120
Something went wrong with that request. Please try again.